求助一个求n是整数吗1到n中数字1的个数的程序

【编程之美】给定一个十进制正整数N,求出从1开始,到N的所有整数,数字1出现的次数。

例如,N=2,则两个数为1,2 。数字1出现的个数是1.

设计一个算法,可以高效地求出1-N之间出现的1的个数。(主要考虑效率)。

 对于一个数abcde。出现1的次数可以通过计算各位中出现的1的个数的和计算出来。以统计10位上1的个数为例,记icurrnum为当前要统计的位(例如10位上)的值(d),ilow为icurrnum低位的值(e),ihighnum为icurrnum高位的值(abc).

则根据icurr的值,出现1的个数可以归纳为:

一次计算个位,10位,百位。。。等出现1的个数,相加,就是最终的结果。

我要回帖

更多关于 n是整数吗 的文章

 

随机推荐