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 }

 

转载于:https://www.cnblogs.com/MindPalace/p/7465082.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值