打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。
分析
利用for循环遍历100-999里的数,声明一个布尔型方法,每个数分解出个位,十位,百位,若各位数字立方和等于该数本身,则return true,否则return false,若判断正确,则在主函数中输出此数。
public class Test {
public static void main(String[] args) {
for(int i=100;i<999;i++){
if(isShuiXianHua(i))
System.out.println(i+"");
}
}
public static boolean isShuiXianHua ( int num){ //声明布尔型方法,判断是否为水仙花数
if (num < 100 || num > 999) {
return false;
} else {
int geWei = num % 10;
int shiWei = (num / 10) % 10;
int baiWei = num / 100;
int total = geWei * geWei * geWei + shiWei * shiWei * shiWei
+ baiWei * baiWei * baiWei;
if (total == num) { //判断是否符合条件
return true;
} else {
return false;
}
}
}
}