2520-统计能整除数字的位数

Raphael Liu Lv10

给你一个整数 num ,返回 num 中能整除 num 的数位的数目。

如果满足 nums % val == 0 ,则认为整数 val 可以整除 nums

示例 1:

**输入:** num = 7
**输出:** 1
**解释:** 7 被自己整除,因此答案是 1 。

示例 2:

**输入:** num = 121
**输出:** 2
**解释:** 121 可以被 1 整除,但无法被 2 整除。由于 1 出现两次,所以返回 2 。

示例 3:

**输入:** num = 1248
**输出:** 4
**解释:** 1248 可以被它每一位上的数字整除,因此答案是 4 。

提示:

  • 1 <= num <= 109
  • num 的数位中不含 0

视频讲解 已出炉,欢迎点赞三连~


遍历每个数位,判断能否整除 num。

[sol1-Python3]
1
2
3
4
5
6
7
class Solution:
def countDigits(self, num: int) -> int:
ans, x = 0, num
while x:
ans += num % (x % 10) == 0
x //= 10
return ans
[sol1-Go]
1
2
3
4
5
6
7
8
func countDigits(num int) (ans int) {
for x := num; x > 0; x /= 10 {
if num%(x%10) == 0 {
ans++
}
}
return
}

复杂度分析

  • 时间复杂度:O(\log \textit{num})。
  • 空间复杂度:O(1),仅用到若干变量。
 Comments
On this page
2520-统计能整除数字的位数