天天看点

算法题/从1到n的正数中1的出现次数python2.7

python2.7

输入一个整数n,求从1到n这n个正数中,1出现的次数。例如:输入12,出现一的数字有1,10,11,12共有5个1,则输出5.

最简单的方法,我们可以遍历从1到n的每一个数字k,对于k我们计算出它其中包含的1的个数,方法其实很简单,只需要分别判断个位,十位,百位,千位等的每一位是否为1,然后用计数器记录。

对10求余判断是否等于一这样为了判断最高位是否为1

n/10是为了每次得到除了最高位的后面数字。

#coding:utf-8

def compute(n):
    total_1 = 
    for i in range(,n+):
        #计算数字n每一位的1,
        while i:
            if i %  ==:
                total_1 += 
            i = i/
    return total_1

if __name__ == '__main__':
    print('12 has %i 1'%compute())
           
算法题/从1到n的正数中1的出现次数python2.7