/**
* 100-999水仙花数
*/
@Test
public void printNarcissisticNumber() {
/*
* 【程序3】 题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个
* "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。
*/
for (int i = 100; i < 1000; i++) {
if (countNarcissisticNumber(i)) {
System.out.println(i+",是水仙花数");
}
}
}
/**
* 计算水仙花数
*/
public boolean countNarcissisticNumber(int number) {
/*
* "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个
* "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方。
*/
int unitNum = number % 10;// 个位数
int tenNum = number / 10 % 10;// 十位数
int hundredNum = number / 100;// 百位数
if (number == Math.pow(unitNum, 3) + Math.pow(tenNum, 3)
+ Math.pow(hundredNum, 3)) {
return true;
}
return false;
}
打印结果:
153,是水仙花数
370,是水仙花数
371,是水仙花数
407,是水仙花数