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

题目:

题解:

cpp 复制代码
class Solution {
public:
    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 + min(max(n % (mulk * 10) - mulk + 1, 0LL), mulk);
            mulk *= 10;
        }
        return ans;
    }
};
相关推荐
黄昏晓x21 小时前
C++----哈希表
c++·哈希算法·散列表
三月微暖寻春笋1 天前
【和春笋一起学C++】(六十一)公有继承中的多态
c++·多态·virtual·基类·虚函数·公有继承
Navigator_Z1 天前
LeetCode //C - 962. Maximum Width Ramp
c语言·算法·leetcode
兩尛1 天前
409. 最长回文串
c++·算法·leetcode
智者知已应修善业1 天前
【pta反转加法构造回文数c语言1000位】2025-1-31
c语言·c++·经验分享·笔记·算法
汉克老师1 天前
GESP2024年3月认证C++二级( 第三部分编程题(2)小杨的日字矩阵 )
c++·矩阵·循环结构·gesp二级·gesp2级·打印图形
样例过了就是过了1 天前
LeetCode热题100 螺旋矩阵
算法·leetcode·矩阵
追随者永远是胜利者1 天前
(LeetCode-Hot100)226. 翻转二叉树
java·算法·leetcode·职场和发展·go
yyjtx1 天前
DHU上机打卡D27
c++·算法·图论
白太岁1 天前
C++:(5) 单例模式与支持初始化失败的单例模式
c++·单例模式