题目链接
https://vjudge.net/problem/UVA-1225
代码
#include <iostream>
#include <string.h>
int res[10]; // 用于保存最后的结果
int main()
{
int T; // 一共需要测试 T 组数据,T 的范围是 1 到 20,全闭
int N;
scanf("%d", &T);
while (T--)
{
memset(res, 0, sizeof(res));
scanf("%d", &N);
for (int i = 1; i <= N; i++)
{
int tmp = i;
while (tmp / 10 != 0)
{
res[tmp % 10]++;
tmp /= 10;
}
res[tmp]++;
}
for (int i = 0; i < 10; i++)
{
printf("%d", res[i]);
if (i < 9)
printf(" ");
}
printf("
");
}
return 0;
}
注意,这题可以用查表法进行优化。应对大量数据时,查表法的效率要高很多。