0
点赞
收藏
分享

微信扫一扫

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


文章目录

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

🔵结果展示:

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


举报

相关推荐

0 条评论