题目:
题解:
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;}
};