// num表示需要查找的自幂数位数,如num=3,表示在范围100~999
public static void sumNumber(int num){
for (int i =(int)Math.pow(10,num-1) ; i < (int)Math.pow(10,num)-1; i++) {
int[] array=new int[num];
int index=0;
int number=i;
while(number!=0){
array[index]=number%10;
number/=10;
index++;
}
double sum=0;
for (int j = 0; j < array.length; j++) {
sum+=Math.pow(array[j],num);
}
if((int)sum==i)
System.out.println(i);
}
}
错误总结:while循环内,不能直接对i操作,这样会改变i的值。