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; } }