題目:
題解:
class Solution:def countDigitOne(self, n: int) -> int:# mulk 表示 10^k# 在下面的代碼中,可以發現 k 并沒有被直接使用到(都是使用 10^k)# 但為了讓代碼看起來更加直觀,這里保留了 kk, mulk = 0, 1ans = 0while n >= mulk:ans += (n // (mulk * 10)) * mulk + min(max(n % (mulk * 10) - mulk + 1, 0), mulk)k += 1mulk *= 10return ans