题目大意:把前n个整数顺次写在一起:123456789101112...数一数0-9各出现多少次。
#include<stdio.h>
#include<string.h>
int main()
{
int k;
scanf("%d",&k);
while(k-->0){
int a[10] ;//保存输出
memset(a,0,sizeof(a));
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++){
int max = 1000;
while(i<max)//求出最接近i的10的倍数
max /=10;
if(max == 0) a[i]++;
else{
int t = i;//
while(max != 1){//遍历t每一位
a[t/max]++;
t-=t/max*max;
max/=10;
}
a[t]++;
}
}
for(int i=0;i<9;i++)
printf("%d ",a[i]);
printf("%d\n",a[9]);
}
return 0;
}