问题描述:一本书的页码从自然数1开始顺序编码直到自然数n。书的页码按照通常的习惯编排,每个页码都不含多余的前导数字0。例如,第6页用数字6表示而不是06或006等。数字统计问题要求对给定数的总也吗的十进制整数n。计算书的全部页码分别用到多少次数字0,1,2...9。
算法设计:给定表述书的总页码的十进制整数n(1<=n<=10^9),计算书的全部页码中分别用到多少次数字0~9.
C语言算法实现:
#include<stdio.h>
#include<math.h>
#define n 5
int main()
{
int i;
int temp,num;
int count[10]={0};
scanf("%d",&num);
for(i=0;i<=num;i++){
temp=i;
while(temp>0){
count[temp%10]++;
temp /=10;
}
}
for(i=0;i<10;i++){
printf("%4d\n",count[i]);
}
putchar('\n');
return 0;
}
Java实现