算法设计与实验题解一本书的页码从自然数1开始顺序编码直到自然数n。书的页码按照通常的习惯编排,每个页码都不含多余的前导数字0。例如第6页用6表示而不是06或006。数字统计问题要求对给定书的总页码,计算出书的全部页码中分别用到多少次数字0,1,2,3,.....9。

时间:2013-10-08 02:33:45
【文件属性】:

文件名称:算法设计与实验题解一本书的页码从自然数1开始顺序编码直到自然数n。书的页码按照通常的习惯编排,每个页码都不含多余的前导数字0。例如第6页用6表示而不是06或006。数字统计问题要求对给定书的总页码,计算出书的全部页码中分别用到多少次数字0,1,2,3,.....9。

文件大小:5KB

文件格式:TXT

更新时间:2013-10-08 02:33:45

王晓东编著的《算法设计与实验题解》

在王晓东编著的《算法设计与实验题解》中看到的这个问题,问题描述如下: 一本书的页码从自然数1开始顺序编码直到自然数n。书的页码按照通常的习惯编排,每个页码都不含多余的前导数字0。例如第6页用6表示而不是06或006。数字统计问题要求对给定书的总页码,计算出书的全部页码中分别用到多少次数字0,1,2,3,.....9。 这个题目有个最容易想到的n*log10(n)的算法。这是自己写的复杂度为O(n*log10(n))的代码: void statNumber(int n) { int i, t; int count[10] = {0}; for(i = 1; i <= n; i++) { t = i; while(t) { count[t%10]++; t/=10; } } for(i = 0; i < 10; i++) { printf("%d\n", count[i]); } }


网友评论

  • 注解非常详细
  • 资源很不错,对我的帮助很大,十分感谢!
  • 解释得很清楚
  • 代码可以运行,自己动手再加上运行时间的代码及占用空间的代码就可以作为作业了……
  • 代码不错,对我的编程还是有一定帮助的
  • 嗯,看书看不懂就跑来这里看了,还是能给我一定启发的。
  • 不错,谢谢你,对我帮助很大尤其是你那个复杂度为O(n*log10(n))的算法给了我很大启发