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;
    }
};
相关推荐
优雅的潮叭4 小时前
c++ 学习笔记之 shared_ptr
c++·笔记·学习
多米Domi0114 小时前
0x3f第33天复习 (16;45-18:00)
数据结构·python·算法·leetcode·链表
SunkingYang4 小时前
QT中使用Lambda表达式作为槽函数用法,以及捕获列表和参数列表用法与区别
c++·qt·用法·lambda表达式·捕获列表·槽函数·参数列表
微露清风5 小时前
系统性学习C++-第二十二讲-C++11
java·c++·学习
Lips6115 小时前
2026.1.16力扣刷题
数据结构·算法·leetcode
代码村新手6 小时前
C++-类和对象(中)
java·开发语言·c++
今天_也很困7 小时前
LeetCode 热题100-15.三数之和
数据结构·算法·leetcode
Ccjf酷儿7 小时前
C++语言程序设计 (郑莉)第十章 泛型程序设计与C++标准模板库
开发语言·c++
千金裘换酒7 小时前
LeetCode 数组经典题刷题
算法·leetcode·职场和发展
alphaTao9 小时前
LeetCode 每日一题 2026/1/12-2026/1/18
python·算法·leetcode