A self-dividing number is a number that is divisible by every digit it contains.
For example, 128 is a self-dividing number because 128 % 1 == 0 , 128 % 2 == 0 , and 128 % 8 == 0 .
Also, a self-dividing number is not allowed to contain the digit zero.
Given a lower and upper number bound, output a list of every possible self dividing number, including the bounds if possible.
Example 1:
Input: left = 1, right = 22 Output: [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15, 22]
Note:
- The boundaries of each input argument are
1 <= left <= right <= 10000 .
<Solution>
這題就真的是按照題意用暴力法解
code 如下
C++
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Solution { | |
public: | |
vector<int> selfDividingNumbers(int left, int right) { | |
vector<int> ans; | |
int num; | |
int digit; | |
for(int i = left; i <= right; i++) { | |
num = i; | |
while(num) { | |
digit = num % 10; | |
if(digit == 0 || i % digit != 0) { | |
break; | |
} | |
num /= 10; | |
} | |
if(num == 0) { | |
ans.push_back(i); | |
} | |
} | |
return ans; | |
} | |
}; |
沒有留言:
張貼留言