整数中1出现的次数
题目描述
输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数
例如,1~13中包含1的数字有1、10、11、12、13因此共出现6次
示例1
输入
13
返回值
6
解题思路:
代码:
class Solution:
def NumberOf1Between1AndN_Solution(self, n):
i = 1 #保存当前位表示的大小,如1,10,100,1000, ...
count = 0
while i <= n:
high = n // (i * 10)
low = n % i
cur = (n / i) % 10
if cur == 0:
count += high * i
elif cur == 1:
count += high * i + low + 1
else:
count += (high + 1) * i
i *= 10
return count