1. 程式人生 > 其它 >Leetcode 728. 自除數

Leetcode 728. 自除數


自除數 是指可以被它包含的每一位數整除的數。

例如,128 是一個 自除數 ,因為 128 % 1 == 0,128 % 2 == 0,128 % 8 == 0。
自除數 不允許包含 0 。

給定兩個整數 left 和 right ,返回一個列表,列表的元素是範圍 [left, right] 內所有的 自除數 。

示例 1:

輸入:left = 1, right = 22
輸出:[1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15, 22]

示例 2:

輸入:left = 47, right = 85
輸出:[48,55,66,77]

提示:

  • 1 <= left <= right <= 10^4

Code:

class Solution {
public:
    vector<int> selfDividingNumbers(int left, int right) {
        vector<int>res;
        for(int i=left;i<=right;i++)
        {
            string str=to_string(i);
            
            if(str.length()==1&&i!=0)
            {
                res.push_back(i);
            }
            else
            {
                bool flag=false;
                for(int j=0;j<str.length();j++)
                {
                    if((str[j]-'0')!=0 && ((i%(str[j]-'0'))==0))
                    {
                        
                    }
                    else
                    {
                        flag=true;
                    }
                }
                if(!flag)
                {
                    res.push_back(i);
                }
            }
        }
        return res;
    }
};