import java.util.Scanner;
public class ts3 {
// 接收控制台输入信息
public static void main(String[] args){
/*
编程实现判断一个整数是否为“水仙花数”。所谓“水仙花数”是指一个三位的整数,其各位数字立方和等于该数本身。
例如:153是一个“水仙花数”,因为153=13+53+33。要求:用带有一个输入参数的函数(或方法)实现,返回值类型为布尔类型。
*/
// 接收控制台输入信息
Scanner scan = new Scanner(System.in);
System.out.print(“请输入一个整数:”);
try {
// 取出控制台输入的信息
int num = scan.nextInt();
// 调用isDaffodilNumber()方法
if (isDaffodilNumber(num)) {
// 若为true,输出是水仙花数
System.out.println(num + "是水仙花数!");
} else {
// 否则,输出不是水仙花数
System.out.println(num + "不是水仙花数!");
}
} catch (Exception e) {
// 捕捉异常,输入的必须为整数,若否,输出必须输入整数
System.out.println("必须输入整数");
}
}
// 用于判断一个整数是否是水仙花数
public static boolean isDaffodilNumber(int i) {
boolean flag = true;
// 取得百位数
int a = i / 100;
// 取得十位数
int b = (i / 10) % 10;
// 取得个位数
int c = i % 10;
/*
* if ((Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3)) != i) {// 若各位数字立方和不等于该数本身
* flag = false;// 返回false
* }
*/
if (a * a * a + b * b * b + c * c * c != i) {
// 若各位数字立方和不等于该数本身返回false
flag = false;
}
return flag;
}
}