import java.util.*;
/*所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身*/
public class DaffodilNumber {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);// 接收控制台输入信息
System.out.print("请输入一个整数:");
try {
int num = scan.nextInt();// 取出控制台输入的信息
if (isDaffodilNumber(num)) {// 调用isDaffodilNumber()方法
System.out.println(num + "是水仙花数!");// 若为true,输出是水仙花数
} 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
}
return flag;
}
}
分享到:
2012-09-28 12:01
浏览 2940
评论