文章目录
- 🔴力扣原题:
- 🟠题目简述:
- 🟡解题思路:
- 🟢C++代码:
- 🔵结果展示:
🔴力扣原题:
力扣链接:728. 自除数
🟠题目简述:
自除数 是指可以被它包含的每一位数整除的数。
例如,128 是一个 自除数 ,因为128 % 1 == 0,128 % 2 == 0,128 % 8 == 0。 自除数 不允许包含 0 。
给定两个整数 left 和 right ,返回一个列表,列表的元素是范围 [left, right] 内所有的 自除数 。
🟡解题思路:
1.模拟大法好;
 2.int数转string得出数字的字符串;
 3.遍历字符串得出每一位的char,然后char转int进行自除;
 4.over;
🟢C++代码:
class Solution {
    bool isSelfDividingNum(int num)
    {
        bool bRet = true;
        string str = to_string(num);
        int n = str.length();
        for(int i = 0; i < n; i++)
        {
            int j = str[i] - '0'; ///< char to int
            if((0 == j) || (0 != (num % j))) ///< 除数为0的情况也要处理
            {
                bRet = false;
                break;
            }
        }
        return bRet;
    }
public:
    vector<int> selfDividingNumbers(int left, int right) {
        vector<int> vec;
        for(int i = left; i <= right; i++)
        {
            if(isSelfDividingNum(i))
            {
                vec.push_back(i);
            }
        }
        return vec;
    }
};🔵结果展示:

                










