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

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

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

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

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

直接计算出每一位,然后看是否能整除即可:

class Solution {
public:
    int countDigits(int num) {
        int numBak = num;
        int ret = 0;
        while (num) {
            int lastNum = num % 10;
            num /= 10;
            // C++对0取余是未定义行为
            if (!lastNum) {
                continue;
            }

            if (numBak % lastNum == 0) {
                ++ret;
            }
        }

        return ret;
    }
};

你可能感兴趣的:(LeetCode,leetcode,算法,c++)