循环内部只定义了一个变量i,在进行取数字计数的时候改变了i的值--TLE的原因。
#include <stdio.h>
#include <string.h>
int main(void)
{
int n, num, i, j;
int a[10];
scanf("%d", &n);
while(n--){
memset(a, 0, sizeof(a));
scanf("%d", &num);
for(i = 1; i <= num; i ++){
j = i;//此处改变变量导致TLE
while(j){
a[j%10] ++;
j /= 10;
}
}
for(i=0; i<10; i++){
if(!i)
printf("%d",a[i]);
else
printf(" %d",a[i]);
}
puts("");
}
return 0;
}