题目:所谓的自分数,是一个整数可以被其每一位上的数字整除。
要求:输出first和last位置之间的所有自分数
例如:128%1==0,128%2==0,128%8==0
要求:输出first和last位置之间的所有自分数
例如:128%1==0,128%2==0,128%8==0
思路:求得每一位的数字,如果得到的数字是0则直接break,否则进入下一次循环
C++代码:
class Solution {
public:
vector<int> selfDividingNumbers(int left, int right) {
int x;
vector<int>test;
int flag = 0;
int a;
for (int i = left; i <= right; i++)
{
if(flag ==1)
flag=0;
if (i>0&&i<10)
test.push_back(i);
else
{
x = i;
while (x != 0){
a = x % 10;
x = x / 10;
if (a == 0 || i%a != 0)
{
flag = 1;
break;
}
}
}
if (flag == 0)
{
cout << i << endl;
test.push_back(i);
}
}
return test;
}
};