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;
}