この困難は、各番号にそれを与えるためにデジタル処理さか疑問であり、
使用(10%/ 10)大法に!使用するのが特に簡単!ああ覚えている、
と私はデータ用若かった、私はそれように、再びテーブル、ケース全体を再生することを好みます
#include <cstdio>
#include <cstring>
using namespace std;
int a[10][10005];
int main()
{
int n;
scanf("%d",&n); // a[][i] 数组表示1-i所有数 的 0-9分别的个数
for (int i = 1; i < 10001; i++)
{
int k = i;
while(k)
{
int h = k%10; //%10
a[h][i]++;
k/=10; // /10
}
for (int j = 0; j < 10; j++)
a[j][i]+=a[j][i-1];
}
while(n--)
{
int k;
scanf("%d",&k);
for (int i = 0; i < 10; i++)
{
if(i!=9)
printf("%d ",a[i][k]);
else
printf("%d\n",a[i][k]);
}
}
return 0;
}