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;
    }
};
相关推荐
诙_6 小时前
C++代码实践应用
开发语言·c++
Little At Air7 小时前
LinuxOS阻塞队列模型(单生产者单消费者)
linux·数据结构·c++
念恒123067 小时前
基础IO(一切皆文件)
linux·c语言·c++·算法
铁皮哥7 小时前
【力扣题解】LeetCode 25. K 个一组翻转链表
java·数据结构·windows·python·算法·leetcode·链表
Irissgwe7 小时前
四、进程控制(进程创建与终止)
linux·c++·进程·系统编程·fork·进程创建·进程终止
代钦塔拉7 小时前
第一篇:工业级 C++/Qt 项目头文件包含原则:告别循环依赖与编译玄学
开发语言·c++·qt
洛水水8 小时前
【力扣100题】29. 对称二叉树
算法·leetcode·职场和发展
洛水水8 小时前
【力扣100题】26. 二叉树的中序遍历
算法·leetcode·深度优先
sheeta19988 小时前
LeetCode 每日一题笔记 日期:2026.05.11 题目:2553. 分割数组中数字的数位
笔记·算法·leetcode
ZPC82108 小时前
规划后的轨迹,如何发给 moveit_servo 执行
c++·人工智能·算法·3d