** 3449: 统计页码**
描述
一本书的页数为N,页码从1开始编起,请你求出全部页码中,用了多少个0,1,2……9。
输入
输入数据有多组,每组数据一行,包括一个正整数N(N<=10000),表示总的页码。## 输出
如果二维数组中至少存在一行或一列,其元素之和为x,则输出YES,否则输出NO
输出
每组数据输出十行:每组的第k行为数字k-1的个数。
每组数据之后输出一个空行。
样例输入
11
样例输出
1
4
1
1
1
1
1
1
1
1
运行结果
代码片
#include<stdio.h>
#define N 10000
int main()
{
int i,j,a[5]={0},b[N][10]={{0,1},{0,1,1}},c=0,shu;
for(i=3;i<=N;i++)
{
c=0;shu=i;
while(shu)
{
a[c]=shu%10;
shu/=10;
c++;
}
for(j=0;j<c;j++)
{
switch(a[j])
{
case 0:b[i-1][0]++;break;
case 1:b[i-1][1]++;break;
case 2:b[i-1][2]++;break;
case 3:b[i-1][3]++;break;
case 4:b[i-1][4]++;break;
case 5:b[i-1][5]++;break;
case 6:b[i-1][6]++;break;
case 7:b[i-1][7]++;break;
case 8:b[i-1][8]++;break;
case 9:b[i-1][9]++;break;
}
}
for(j=0;j<10;j++){b[i-1][j]+=b[i-2][j];}
}
while(scanf("%d",&shu)!=EOF)
{
for(j=0;j<10;j++){printf("%d\n",b[shu-1][j]);}
printf("\n");
}
}
先打表再输入数值,会减少代码时间资源