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;
    }
};
相关推荐
WL学习笔记5 分钟前
模板初阶(C++)
开发语言·c++·后端·模板初阶
埃伊蟹黄面14 分钟前
面试常问题目 —— STL
c++·面试·职场和发展·stl
CHANG_THE_WORLD15 分钟前
ida-multi-mcp-跨版本逆向实战博客
c++
青瓦梦滋17 分钟前
【在线五子棋对战】游戏匹配模块
网络·c++·网络协议·http·https
Nil20817 分钟前
leetcode 75颜色分类
数据结构·算法·leetcode
David猪大卫1 小时前
【C++修炼】STL容器—模板进阶:非类型模板参数、模板特化、模板分离编译
c语言·开发语言·c++·经验分享·笔记·学习·面试
aqiu1111111 小时前
CodeTop按顺序刷题0003:LeetCode 206. 反转链表(迭代法图文详解与动态演示)
算法·leetcode·链表
纪念 2291 小时前
C++ vector(一)
开发语言·c++
不会就选b1 小时前
算法日常・每日刷题--<动态规划>29
数据结构·算法·leetcode
垆边人似月.2 小时前
最少的元素个数使和为 target
数据结构·c++·算法