对于上一个方法过于浪费时间和空间,改进成为只用一个for循环,这样程序就简单了很多
主要代码
/*
* 2、 打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字
立方和等于该数本身。例如:153 是一个 "水仙花数 ",因为 153=1的三次方
+5 的三次方+3 的三次方。
* 对于1.0版本,计算过于繁琐,很有可能会超时超空间,所以在这里我们采取另一个比较好的方法来继续实现
*/
public class P2_2 {
private int a;
public P2_2() {
}
public P2_2(int a) {
super();
this.a = a;
}
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
public void PanDuan() {
for(int i=100;i<=999;i++) {
int e=i/100;
int f=i/10%10;
int g=i%10;
if(e*e*e+f*f*f+g*g*g==i)
System.out.println(i);
}
}
}
测试代码为
public class T2_2 {
public static void main(String[]args) {
P2_2 p=new P2_2();
p.PanDuan();
}
}