- 🔴力扣原题:
- 🟠题目简述:
- 🟡解题思路:
- 🟢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;
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;
}
};
🔵结果展示:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)