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