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

【LetMeFly】2520.统计能整除数字的位数:模拟

力扣题目链接:https://leetcode.cn/problems/count-the-digits-that-divide-a-number/

给你一个整数 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$在十进制下的最低位,并判断这个最低位能否被$num$整除。直到取完每一位为止。

  • 时间复杂度$O(\log_{10} n)$
  • 空间复杂度$O(1)$

AC代码

C++

1
2
3
4
5
6
7
8
9
10
11
12
class Solution {
public:
int countDigits(int num) {
int n = num;
int ans = 0;
while (n) {
ans += (num % (n % 10)) == 0;
n /= 10;
}
return ans;
}
};

Python

1
2
3
4
5
6
7
8
class Solution:
def countDigits(self, num: int) -> int:
n = num
ans = 0
while n:
ans += (num % (n % 10)) == 0
n //= 10
return ans

同步发文于CSDN,原创不易,转载经作者同意后请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/134050300


2520.统计能整除数字的位数
https://blog.letmefly.xyz/2023/10/26/LeetCode 2520.统计能整除数字的位数/
作者
Tisfy
发布于
2023年10月26日
许可协议