题目链接https://vjudge.net/problem/UVA-1225
把前n(n≤10000)个整数顺次写在一起:12345678910111213...数一数0~9各出现多少次(输出10个整数,分别是0,1,...,9出现的次数)
#include<stdio.h>
#include<string.h>
int num[10];
void countnum(int n){
int a=n/1000,b=n%1000/100,c=n%100/10,d=n%10;
if(a>0){num[a]++;num[b]++;num[c]++;num[d]++; }
else if(b>0){num[b]++;num[c]++;num[d]++;}
else if(c>0){num[c]++;num[d]++;}
else num[d]++;
}
int main(){
int T;
scanf("%d",&T);
while(T--){
memset(num,0,sizeof(num));
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++) countnum(i);
for(int i=0;i<=8;i++) printf("%d ",num[i]);
printf("%d\n",num[9]);
}
return 0;
}
仔细模拟简单题