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;
    }
};
相关推荐
Navigator_Z10 分钟前
LeetCode //C - 1301. Number of Paths with Max Score
c语言·算法·leetcode
卡卡~~39 分钟前
“101计划”核心课程实践教材《数据实验结构指导-C++语言版》题目集
开发语言·c++·学习·算法
lengxuenong2 小时前
树状数组 · 信息学学习手册1-求和3个模板
c++·学习·算法·青少年编程
Nuanyt2 小时前
LeetCode Hot100 刷题笔记 · 普通数组专题
java·笔记·算法·leetcode
ShineWinsu3 小时前
对于Qt:信号与槽的解析
c++·qt·gui·lambda·信号·信号与槽·槽函数
WL学习笔记3 小时前
使用string类
c++·后端·string类
xxxiugou1233 小时前
链表算法题精讲:从两数相加到K组翻转
数据结构·c++·算法·链表
HAPPY酷3 小时前
C++ 自定义内存池优化点云处理:从裸指针到 RAII 自动回收
开发语言·c++
春弦_4 小时前
LeetCode Hot 100 刷题笔记
笔记·leetcode·哈希算法
zhangdaliangmvp4 小时前
快速排序的学习理解:从基础分治到三路划分优化
c++·学习·算法