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;
    }
};
相关推荐
我不是懒洋洋13 小时前
从零实现一个RPC框架:远程调用与服务治理
c++
困意少年13 小时前
从统一初始化到移动语义:C++11 为什么是现代 C++ 的起点
c++
stolentime13 小时前
CF2066D1 Club of Young Aircraft Builders (easy version)题解
c++·算法·动态规划·组合数学
Jun62613 小时前
QT(1)-C/C++库生成和调用
c语言·开发语言·c++·qt
小欣加油14 小时前
leetcode41 缺失的第一个正数
数据结构·c++·算法·leetcode
智者知已应修善业14 小时前
【51单片机按键控制1分钟正计时倒计时暂停复位】2024-1-2
c++·经验分享·笔记·算法·51单片机
QT-Neal14 小时前
C++ 编译过程详解
c++
Littlehero_12114 小时前
QT自定义控件之热换站远程监控系统
c++·qt
努力努力再努力wz14 小时前
【Qt入门系列】一文掌握 Qt 常用显示类控件:QLCDNumber、QProgressBar 与 QCalendarWidget
c语言·开发语言·数据结构·数据库·c++·git·qt
C++ 老炮儿的技术栈14 小时前
如何利用 OpenCV 将图像显示在对话框窗口上
c语言·c++·人工智能·qt·opencv·计算机视觉·github