num728. 自除数
链接: 自除数.
思路:模拟情况即可
- 首先小于10的数一定是在答案里
- 用
mid
控制循环次数,用于求出每一个数位上的数字 - mod保存个各数位的数字并进行
i % mod
的计算,如果i % mod != 0
就让标签为0,直接跳出循环 - 如果标签为1,就加入答案数组中
代码
class Solution {
public:
vector<int> selfDividingNumbers(int left, int right) {
vector<int> ans;
for(int i = left; i <= right; i++){
if(i < 10) ans.push_back(i);
else {
int mid = i;
int flag = 1;
while(mid != 0){
int mod = mid % 10;
mid /= 10;
if(mod == 0 || i % mod != 0) {
flag = 0;
break;
}
}
if(flag == 1) ans.push_back(i);
}
}
return ans;
}
};