UVa 1225 Digit Counting --- 水题
Posted tan90丶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UVa 1225 Digit Counting --- 水题相关的知识,希望对你有一定的参考价值。
题目大意:把前n(n<=10000)个整数顺次写在一起,12345678910111213...,数一数0-9各出现多少字
解题思路:用一个cnt数组记录0-9这10个数字出现的次数,先将cnt初始化为0,接着让i从1枚举到n,
对每个i,处理以活的i的每一个位置上的数,并在相应的cnt下标上+1
最后输出cnt数组即可
/* UVa 1225 Digit Counting --- 水题 */ #include <cstdio> #include <cstring> int cnt[15]; //cnt[i]记录数字i出现的次数 //取得n的各个位上的数,并在相应的cnt+1 void fun(int n){ if (n == 0){ return; } ++cnt[n % 10]; fun(n / 10); } int main() { int t, n; scanf("%d", &t); while (t--){ scanf("%d", &n); memset(cnt, 0, sizeof cnt); for (int i = 1; i <= n; ++i){ fun(i); } for (int i = 0; i <= 9; ++i){ printf(i == 9 ? "%d\n" : "%d ", cnt[i]); } }//while(t) return 0; }
以上是关于UVa 1225 Digit Counting --- 水题的主要内容,如果未能解决你的问题,请参考以下文章
UVA 1225 Digit Counting(统计数位出现的次数)