一.题目描述
Leectcode 233. 数字1的个数:给定一个整数 n,计算所有小于等于 n 的非负整数中数字 1 出现的个数。
二.示例
三.算法分析
主要思路:计算每一位上的数字对1的贡献。
例如整数110:
个位上对1的贡献:1,11,21,31,41,51,61,....,101。
十位上对1的贡献应是10,11,12,...,19,110。
百位上对1的贡献应该是100,101,...,110。
四.算法实现
class Solution(object):
def countDigitOne(self, n):
"""
:type n: int
:rtype: int
"""
count = 0
replace = n
digit = 0
bit = 1
while(replace>0):
digit = replace%10
replace /=10