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;
    }
};
相关推荐
yuuki23323313 分钟前
【C++】模拟实现 AVL树
java·c++·算法
YuTaoShao1 小时前
【LeetCode 每日一题】3713. 最长的平衡子串 I ——(解法二)暴力枚举 + 优化
算法·leetcode·职场和发展
蜡笔小马1 小时前
20.Boost.Geometry 中常用空间算法详解:crosses、densify、difference 与离散距离度量
c++·算法·boost
Mr YiRan1 小时前
C++语言学习之面向对象
java·c++·学习
寻寻觅觅☆2 小时前
东华OJ-基础题-127-我素故我在(C++)
开发语言·c++·算法
ab1515172 小时前
2.13完成101、102、89
开发语言·c++·算法
HAPPY酷2 小时前
C++中类常见的函数分类
java·开发语言·c++
梵刹古音3 小时前
【C++】 虚指针(vptr)与虚函数表(vtable)
开发语言·c++
REDcker3 小时前
curl开发者快速入门
linux·服务器·c++·c·curl·后端开发
tod1133 小时前
Redis C++ 客户端开发全流程指南
数据库·c++·redis·缓存