code:
#include<stdio.h> int main() { int T(0); scanf("%d", &T); while(T--) { int number[10] = {0}; int N(0); scanf("%d", &N); int i = 1; for(; i <= N; i++) { int temp = i; while(temp) { number[temp%10]++; temp /= 10; } } int first = 1; for( i = 0; i < 10; i++) { if( first ) first = 0; else printf(" "); printf("%d",number[i]); } putchar('\n'); } return 0; }
- 从1开始一直判断到N,把每一个数字的每一个数位都在数组对应的位置计数,最后读出每一个数即可。