UVa 1225 Digit Counting --- 水题

  UVa 1225

  题目大意:把前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[]; //cnt[i]记录数字i出现的次数 //取得n的各个位上的数,并在相应的cnt+1
void fun(int n){
if (n == ){
return;
}
++cnt[n % ];
fun(n / );
} int main()
{
int t, n;
scanf("%d", &t);
while (t--){
scanf("%d", &n);
memset(cnt, , sizeof cnt);
for (int i = ; i <= n; ++i){
fun(i);
}
for (int i = ; i <= ; ++i){
printf(i == ? "%d\n" : "%d ", cnt[i]);
}
}//while(t) return ;
}
上一篇:eclipse中配置tomcat


下一篇:UVa 1339 Ancient Cipher --- 水题