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