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;
    }
};
相关推荐
草莓熊Lotso19 分钟前
Qt 进阶核心:UI 开发 + 项目解析 + 内存管理实战(从 Hello World 到对象树)
运维·开发语言·c++·人工智能·qt·ui·智能手机
TonyLee0176 小时前
LLVM安装(ubuntu22)
c++
Swift社区7 小时前
LeetCode 465 最优账单平衡
算法·leetcode·职场和发展
weixin_445054727 小时前
力扣热题51
c++·python·算法·leetcode
smj2302_7968265210 小时前
解决leetcode第3801题合并有序列表的最小成本
数据结构·python·算法·leetcode
汉克老师10 小时前
GESP2025年12月认证C++七级真题与解析(单选题8-15)
c++·dfs·bfs·二分·强联通分量·gesp7级·gesp七级
fqbqrr11 小时前
2601C++,pmr管理内存
c++
君义_noip11 小时前
【模板:矩阵加速递推】信息学奥赛一本通 1642:【例 2】Fibonacci 第 n 项
c++·线性代数·矩阵·信息学奥赛·csp-s
宠..11 小时前
优化文件结构
java·服务器·开发语言·前端·c++·qt
编程之路,妙趣横生12 小时前
C++11(上)
c++