Leetcode 233. Number of Digit One (Medium) (cpp)

来源:互联网 发布:全球主权财富基金知乎 编辑:程序博客网 时间:2024/05/18 17:58

Leetcode 233. Number of Digit One (Medium) (cpp)

Tag: Math

Difficulty: Medium


/*233. Number of Digit One (Medium)Given an integer n, count the total number of digit 1 appearing in all non-negative integers less than or equal to n.For example:Given n = 13,Return 6, because digit 1 occurred in the following numbers: 1, 10, 11, 12, 13.Hint:Beware of overflow.*/class Solution {public:int countDigitOne(int n) {int res = 0;for (long long i = 1; i <= n; i *= 10) {res += (n / i + 8) / 10 * i + (n / i % 10 == 1) * (n % i + 1);}return res;}};


0 0