UVA1583 UVALive3355 Digit Generator
生活随笔
收集整理的这篇文章主要介绍了
UVA1583 UVALive3355 Digit Generator
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
Regionals 2005 >> Asia - Seoul
问题链接:UVA1583 UVALive3355 Digit Generator。基础训练级的题,用C语言编写。
看题意,请点击上述链接。
查表法最为合理,即使试探法可能性太多,而且求最小的生成元比较困难。
不打表估计时间上也会超时。
程序中,打表功能封装到函数maketable(),使得主函数变得简洁。另外,打表时需要注意数组下标溢出问题。还需要注意,求的是最小生成元。
AC通过的C语言程序如下:
/* UVA1583 UVALive3355 Digit Generator */#include <stdio.h> #include <memory.h>#define MAXN 100000int ans[MAXN+1];void maketable(int max) {int i, digitsum, n;memset(ans, 0, sizeof(ans));for(i=1; i<max; i++) {digitsum = n = i;while(n > 0) {digitsum += n % 10;n /= 10;}if(digitsum <= max)if(ans[digitsum] == 0)ans[digitsum] = i;} }int main(void) {maketable(MAXN);int t, n;scanf("%d", &t);while(t--) {scanf("%d", &n);printf("%d\n", ans[n]);}return 0; }
转载于:https://www.cnblogs.com/tigerisland/p/7564533.html
总结
以上是生活随笔为你收集整理的UVA1583 UVALive3355 Digit Generator的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 使用yum安装CDH Hadoop集群
- 下一篇: Social Emotional Com