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

来源:互联网 发布:极限挑战 知乎 编辑:程序博客网 时间:2024/06/06 09:23

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-8def compute(n):    total_1 = 0    for i in range(1,n+1):        #计算数字n每一位的1,        while i:            if i % 10 ==1:                total_1 += 1            i = i/10    return total_1if __name__ == '__main__':    print('12 has %i 1'%compute(12))

这里写图片描述

原创粉丝点击