解决方案:
class Solution
{
public List<Integer> selfDividingNumbers(int left, int right)
{
List<Integer> result = new ArrayList() ;
for (int i = left; i <= right; i ++)
{
//去除10的倍数
if (i % 10 != 0)
{
if (i < 10)
{
result.add(i) ;
}
else // i >= 10 && i不是10的倍数
{
String temp = String.valueOf(i);
int len = temp.length() ;
boolean flag = true ;
while (len > 0)
{
int num = Integer.parseInt(String.valueOf(temp.charAt(len-1))) ; //从后往前取余
//注意到数字中间的0也要去掉
if (num== 0 || i % num != 0)
{
flag = false ;
break ;
}
else
{
len -- ;
}
}
if (flag)
{
result.add(i) ;
}
}
}
}
return result ;
}
}
可能方法较笨,仅供参考