欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

UVA1583 UVALive3355 Digit Generator

发布时间:2025/3/17 编程问答 43 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。