题意是在给出的数字范围中找出自分数。所谓自分数就是能够被自己每一位上的数字整除的数。其实这也是比较简单的。需要注意的点就是如果数字里面有零就不是自分数,因为零不能是除数。想法就是建立一个list,把从左往右依次查找,判断它是否是自分数,是就放到list里面,最后返回这个表。代码如下:
class Solution {
public List<Integer> selfDividingNumbers(int left, int right) {
List<Integer> list = new ArrayList<>();
for (int i = left; i <= right; i++) {
int j = i;
for (; j > 0; j /= 10) {
if ((j % 10 == 0) || (i % (j % 10) != 0)) break;
}
if (j == 0) list.add(i);
}
return list;
}
}