输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数。
例如,输入12,1~12这些整数中包含1 的数字有1、10、11和12,1一共出现了5次。
示例 1:
输入:n = 12
输出:5
示例 2:
输入:n = 13
输出:6

class Solution:
def countDigitOne(self, n: int) -> int:
base=1
s=0
while base<=n:
b=n%base
a=n//base #包含cur那部分
cur=a%10
a=a//10
if cur>1:
s+=(a+1)*base
if cur==1:
s+=a*base+1+b
if cur<1:
s+=a*base
base=base*10
return s
该博客介绍了如何计算从1到给定整数n之间所有数字中1出现的频率。通过示例展示了算法的逻辑,如输入n为12时,1在1到12中出现了5次。算法通过迭代和数学运算得出结果。

被折叠的 条评论
为什么被折叠?



