列表

详情


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

给你一个整数 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 。

 

提示:

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: int countDigits(int num) { } };

python3 解法, 执行用时: 44 ms, 内存消耗: 16.1 MB, 提交时间: 2023-10-26 07:30:47

class Solution:
    def countDigits(self, num: int) -> int:
        return sum(num%i == 0 for i in map(int, str(num)))

rust 解法, 执行用时: 0 ms, 内存消耗: 2 MB, 提交时间: 2023-10-26 07:30:09

impl Solution {
    pub fn count_digits(num: i32) -> i32 {
        num.to_string().chars().map(|c| c.to_digit(10).unwrap() as i32)
        .filter(|&d| num % d == 0).count() as i32
    }
}

javascript 解法, 执行用时: 64 ms, 内存消耗: 40.8 MB, 提交时间: 2023-10-26 07:29:46

/**
 * @param {number} num
 * @return {number}
 */
var countDigits = function(num) {
    let t = num;
    let res = 0;
    while (t) {
        if (num % (t % 10) == 0) {
            res += 1;
        }
        t = Math.floor(t / 10);
    }
    return res;
};

cpp 解法, 执行用时: 0 ms, 内存消耗: 6.2 MB, 提交时间: 2023-10-26 07:29:07

class Solution {
public:
    int countDigits(int num) {
        int ans = 0, x = num;
        while ( x != 0 ) {
            if ( num % (x % 10) == 0 ) ans++;
            x /= 10;
        }
        return ans; 
    }
};

java 解法, 执行用时: 0 ms, 内存消耗: 38.2 MB, 提交时间: 2023-10-26 07:28:41

class Solution {
    public int countDigits(int num) {
        int ans = 0, x = num;
        while ( x != 0 ) {
            if ( num % (x % 10) == 0 ) ans++;
            x /= 10;
        }
        return ans;
    }
}

golang 解法, 执行用时: 0 ms, 内存消耗: 1.8 MB, 提交时间: 2023-01-03 11:43:33

func countDigits(num int) (ans int) {
	for x := num; x > 0; x /= 10 {
		if num%(x%10) == 0 {
			ans++
		}
	}
	return
}

python3 解法, 执行用时: 32 ms, 内存消耗: 15 MB, 提交时间: 2023-01-03 11:43:19

class Solution:
    def countDigits(self, num: int) -> int:
        ans, x = 0, num
        while x:
            ans += num % (x % 10) == 0
            x //= 10
        return ans

python3 解法, 执行用时: 36 ms, 内存消耗: 14.9 MB, 提交时间: 2023-01-03 11:42:26

class Solution:
    def countDigits(self, num: int) -> int:
        ans = 0
        for d in str(num):
            if num % int(d) == 0:
                ans += 1
        return ans

上一题