问题描述:一本书的页码从自然数1开始顺序编码到自然数n。书的页码按照通常的习惯编排,每个页码都不包含多余的前导数字0,Eg:页码6 不使用 006 。数学计数问题要求给定书的总页码n,计算出书的全部页码分别用到了多少次数字0,1,2,3,... ,9.
1 #include2 int main (void){ 3 int outarr [10]; 4 int a ,b=0; 5 for(int i = 0;i<10 ;i++){ 6 outarr[i] = 0; 7 } 8 scanf("%d",&a); 9 for(int i = 1; i<=a;i++){10 b=i;11 while(b>0){12 outarr[b%10]++;13 b /= 10;14 }15 }16 for(int i =0 ;i<10;i++){17 printf("%d\n",outarr[i]);18 }19 return 0;20 }
方法二:
1 #include2 #include 3 #include 4 using namespace std; 5 6 int main(){ 7 int count[10]; 8 int i,j,k,L; 9 int n,len,m;10 while(scanf("%d",&n)!=EOF){11 m=n;12 L=ceil(log10(n+1));13 for(i=0;i<10;i++) count[i] = 0;14 for(j=0;j
注释;