Easy
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
.
题目大意:自分数字是指,对于数字中的每一位,该数字都能对其整除。并且自分数字中不能包含0。
现给出一个范围,求出该范围内的所有自分数字。
这道题只要在这个范围内判断该数字是否为自分数子就好了。判断是否为自分数字就是依次取出这个数字中的各位,然后用原来的数字除以它,判断结果是否为0.
每一位都要进行判断,同时每一位也要判断是否为0.
代码如下:
class Solution { public: vector<int> selfDividingNumbers(int left, int right) { vector<int> res; for(int i=left;i<=right;++i){ int temp=i; while(temp/10 != 0){ if(temp%10!=0 && i%(temp%10)==0){ temp/=10; continue; } else break; } if(temp/10==0 && i%temp==0){ res.push_back(i); } } return res; } };