Digit Counting
分析
循环计数N~0每一位的数并存起来。
代码
#include <iostream>
using namespace std;
int main()
{
int t,a;
cin>>t;
int num[20][10];
int x[4];
for(int i=0;i<t;i++)
{
cin>>a;
for(int h=0;h<10;h++)
num[i][h]=0;
for(int j=a;j>0;j--)
{
int y=j;
x[0]=y/1000; y=y-x[0]*1000;
x[1]=y/100; y=y-x[1]*100;
x[2]=y/10; y=y-x[2]*10;
x[3]=y;
for(int k=0;k<4;k++)
{
if (x[k]==0) num[i][0]++;
if (x[k]==1) num[i][1]++;
if (x[k]==2) num[i][2]++;
if (x[k]==3) num[i][3]++;
if (x[k]==4) num[i][4]++;
if (x[k]==5) num[i][5]++;
if (x[k]==6) num[i][6]++;
if (x[k]==7) num[i][7]++;
if (x[k]==8) num[i][8]++;
if (x[k]==9) num[i][9]++;
}
if (x[0]==0) num[i][0]--;
if ((x[0]==0)&&(x[1]==0)) num[i][0]--;
if ((x[0]==0)&&(x[1]==0)&&(x[2]==0)) num[i][0]--;
}
}
for (int i=0;i<t;i++)
{
for(int j=0;j<9;j++)
{
cout<<num[i][j]<<" ";
}
cout<<num[i][9]<<endl;
}
return 0;
}