C语言 | Leetcode C语言题解之第233题数字1的个数

avatar
作者
筋斗云
阅读量:5

题目:

题解:

int countDigitOne(int n) {     // mulk 表示 10^k     // 在下面的代码中,可以发现 k 并没有被直接使用到(都是使用 10^k)     // 但为了让代码看起来更加直观,这里保留了 k     long long mulk = 1;     int ans = 0;     for (int k = 0; n >= mulk; ++k) {         ans += (n / (mulk * 10)) * mulk + fmin(fmax(n % (mulk * 10) - mulk + 1, 0LL), mulk);         mulk *= 10;     }     return ans; }

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!