跳到主要内容

233.数字1的个数

链接:233.数字1的个数
难度:Hard
标签:递归、数学、动态规划
简介:给定一个整数 n,计算所有小于等于 n 的非负整数中数字 1 出现的个数。

题解 1 - typescript

  • 编辑时间:2021-08-13
  • 执行用时:72ms
  • 内存消耗:39.2MB
  • 编程语言:typescript
  • 解法介绍:[参考链接](https://leetcode-cn.com/problems/number-of-digit-one/solution/shu-zi-1-de-ge-shu-by-leetcode-solution-zopq/)。
function countDigitOne(n: number): number {
let num = 1;
let ans = 0;
while (n >= num) {
ans += ~~(n / 10 / num) * num + Math.min(Math.max((n % (num * 10)) - num + 1, 0), num);
num *= 10;
}
return ans;
}