题目链接
题目分析
这道题目和例题3-5 生成元比较相似,都是需要大的数据重复小的数据的计算过程,所以可以直接打表。
源代码
#include<stdio.h>
#include<string.h>
int res[10005][10];
int main() {
memset(res,0,sizeof(res));
int k;
for(int i=1;i<10000;i++) {
// 直接复制上一个数的计算结果,而不是重新计算
memcpy(res[i],res[i-1],sizeof(res[i-1]));
k=i;
while(k!=0) {
res[i][k%10]++;
k/=10;
}
}
int t,n;
scanf("%d",&t);
for(int i=0;i<t;i++) {
scanf("%d",&n);
for(int j=0;j<9;j++) printf("%d ",res[n][j]);
printf("%d\n",res[n][9]);
}
return 0;
}