UVaOJ1225 Digit Counting AC代码示例
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UVaOJ1225 Digit Counting AC代码示例相关的知识,希望对你有一定的参考价值。
这道题目我采用暴力的方法,通过设一个极为庞大的数组,计算每一层的结果。
经过计算后,需要的结果只需从数组中提取即可。
示例代码如下:
1 #include<iostream> 2 #include<string.h> 3 #include<math.h> 4 using namespace std; 5 6 int s[10009][11]; 7 8 int main() 9 { 10 memset(s, 0, sizeof(s)); 11 for (int i = 1; i < 10009; i++) { 12 s[i][0] = i; 13 s[i][1] = s[i - 1][1]; 14 s[i][2] = s[i - 1][2]; 15 s[i][3] = s[i - 1][3]; 16 s[i][4] = s[i - 1][4]; 17 s[i][5] = s[i - 1][5]; 18 s[i][6] = s[i - 1][6]; 19 s[i][7] = s[i - 1][7]; 20 s[i][8] = s[i - 1][8]; 21 s[i][9] = s[i - 1][9]; 22 s[i][10] = s[i - 1][10]; 23 24 int n = s[i][0]; 25 while (n) { 26 int m = n % 10; 27 switch (m) { 28 case 0: s[i][1] += 1; break; 29 case 1: s[i][2] += 1; break; 30 case 2: s[i][3] += 1; break; 31 case 3: s[i][4] += 1; break; 32 case 4: s[i][5] += 1; break; 33 case 5: s[i][6] += 1; break; 34 case 6: s[i][7] += 1; break; 35 case 7: s[i][8] += 1; break; 36 case 8: s[i][9] += 1; break; 37 case 9: s[i][10]+= 1; break; 38 } 39 n /= 10; 40 } 41 } 42 43 int T = 0; 44 cin >> T; 45 while (T--) { 46 int num; 47 cin >> num; 48 printf("%d %d %d %d %d %d %d %d %d %d\n", 49 s[num][1], s[num][2], s[num][3], s[num][4], s[num][5], s[num][6], s[num][7], s[num][8], s[num][9], s[num][10]); 50 } 51 return 0; 52 }
以上是关于UVaOJ1225 Digit Counting AC代码示例的主要内容,如果未能解决你的问题,请参考以下文章
(UVA)1225 --Digit Counting(数数字)
UVa 1225 Digit Counting --- 水题