「 每日一练,快乐水题 」728. 自除数

「 每日一练,快乐水题 」728. 自除数,第1张

文章目录
    • 🔴力扣原题:
    • 🟠题目简述:
    • 🟡解题思路:
    • 🟢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;
    }
};

🔵结果展示:

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/562607.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-02
下一篇 2022-04-02

发表评论

登录后才能评论

评论列表(0条)

保存