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())
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0NXYFhGd192UvwVe0lmdhJ3ZvwFM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2Lc1TVIFWMoJDWxB3MjZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39zM4MDO0QjMwITOxgDM3EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)