问题:一本书的页码从自然数1开始顺序编码直到自然数n。求的页码按照通常的习惯编排,每个页码都不含多余的前...
int main(){
int n;
int a[10] = {0};
int i;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
int k=i;
while(k)
{
a[k%10]++;
k = k/10;
}
}
for (i = 0; i < 10; i++)
printf("%d\n", a[i]);
return 0;
}
一本书的页码从自然数1开始顺序编码直到自然数n。求的页码按照通常的习惯编排,每个页码都不含多余的前导数字0。例如第6页为6而非06或006等。试统计给定书的总页码n,计算出书的全部页码中分别用到多少次数字0,1,2…,9。
实现方法:得到书的每一页数字n,n每次除以10并得到对应余数,余数对应统计数字+1,直到n<10,n对应统计数字+1
#include "stdio.h"
int main(){
int n;
int a[10] = {0};
int i;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
int k=i;
while(k)
{
a[k%10]++;
k = k/10;
}
}
for (i = 0; i < 10; i++)
printf("%d\n", a[i]);
return 0;
}