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;
    }
};
相关推荐
2301_8152795212 小时前
实战分享实现 C++ 管理类单例模式:特点与最佳实践
javascript·c++·单例模式
洛水水12 小时前
【力扣100题】22. 矩阵置零
算法·leetcode·矩阵
Liangwei Lin12 小时前
LeetCode 78. 子集
数据结构·算法·leetcode
旺仔老馒头.13 小时前
【C++】类和对象(二)
开发语言·c++·后端·类和对象
wefg113 小时前
一些零散的算法
c++·算法
khalil102013 小时前
代码随想录算法训练营Day-48 单调栈02 | 42. 接雨水、84.柱状图中最大的矩形
数据结构·c++·算法·leetcode·单调栈·接雨水
大大杰哥13 小时前
leetcode hot100(3)子串
c++·算法·leetcode
莫生灬灬13 小时前
ElementUI封装 共91个组件 支持易语言/火山/C#/Python
开发语言·c++·python·ui·elementui·c#
影sir13 小时前
STL容器——vector类
c++·算法·stl
Brilliantwxx13 小时前
【C++】stack_queue与deque模版(模拟实现+认识+对比)
开发语言·c++·笔记·算法·list