233. Number of Digit One
2017-10-17 09:52
316 查看
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.
For example:
Given n = 13,
Return 6, because digit 1 occurred in the following numbers: 1, 10, 11, 12, 13.
class Solution { public: int countDigitOne(int n) { if(n < 1) return 0; long long base = 1; long long cnt = 0; while(n >= base){ int r = n / (base * 10); int c = n % (base * 10) / base; if(c == 0){ cnt += r * base; } else if(c == 1){ cnt += r * base + n % (base * 10) % base + 1; } else if(c > 1){ cnt += (r + 1) * base; } base *= 10; } return cnt; } };
相关文章推荐
- leetcode 233. Number of Digit One 从1到n的数组中出现数字1的数量 + 寻找规律,公式计算
- 算法Week02.04 - LeetCode 233. Number of Digit One
- 233. Number of Digit One
- 233. Number of Digit One
- Leetcode 233. Number of Digit One
- leetcode 233. Number of Digit One
- 【LeetCode】233. Number of Digit One
- LeetCode Algorithms 233. Number of Digit One 题解
- leetcode233. Number of Digit One
- 233. Number of Digit One【H】【33】【再来一遍】
- 233. Number of Digit One
- leetcode hard模式专杀之233. Number of Digit One
- leetcode 233. Number of Digit One
- [Leetcode] 233. Number of Digit One 解题报告
- leetcode 233. Number of Digit One
- 233. Number of Digit One
- Leetcode 233. Number of Digit One (Medium) (cpp)
- 233. Number of Digit One
- [leetcode]233. Number of Digit One
- 233. Number of Digit One