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