判断一个三位数是否为水仙花数,一个数等于各个位数的立方和就是水仙花数。如153== 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3
代码如下(示例):
public static void main(String[] args) {
java.util.Scanner scanner = new Scanner(System.in);
boolean determine = true;
//三位数、个位、十位、百位
int num = 0, singleDigit = 0, tenDigit = 0, hundredDigit = 0;
//判断键盘输入是否是三位数。
while (determine) {
System.out.print("请输入100~999之间的数值: ");
num = scanner.nextInt();
if (num > 99 && num < 1000) {
determine = false;
}else {
System.out.println("输入数据有误");
}
}
//计算个位、十位、百位
hundredDigit = num / 100;
tenDigit = (num / 10) % 10;
singleDigit = num % 10;
//Math.pow(m,n)计算m的n次方
if (num == (Math.pow(hundredDigit, 3) +
Math.pow(tenDigit, 3) +
Math.pow(singleDigit, 3))) {
System.out.println(num + "是水仙花数");
} else {
System.out.println(num + "不是水仙花数");
}
}