public class NarcissusNumber {
public static void main(String[] args) {
System.out.println("水仙花数:");
for(int i=1;i<10;i++) { //百位i
for(int j=0;j<10;j++) { //十位j
int s1=i*100+j*10+9; //确定ij下三位数的最大值
int d1=i*i*i+j*j*j;
//s1每次循环增加大小为y=10,d1每次循环增加大小为y=x^3
if(s1<d1) { //百位立方加十位立方大于ij9
if(j<3) //小于三跳出本次循环,否则跳出循环
continue;
else
break;
}
for(int k=0;k<10;k++) { //个位k
int d2=d1+k*k*k;
if(s1<d2) { //当下三位数各位立方之和大于s1
break; //则跳出循环
}
int s2=s1-9+k; //当下三位数
if(s2==d2) {
System.out.print(s2+" ");
}
}
}
}
}