题目:
输入一个整数,判断是否是水仙花数
代码:
import java.util.Scanner;
/**
*一个三位数各个位数上的数字分别立方再相加得到其本身就是水仙花数,否则则不是
*/
public class narcissus
{
private static Scanner in;
/**
* 输入三位数的整数,并对输入数据进行检测,以及输出是否是水仙花数
* @param num是输入的数据
*/
public static void main(String args[])
{
in = new Scanner(System.in);
System.out.print("请输入一个三位数的整数:");
try
{
int num = in.nextInt();
if(isNarcissus(num))
{
System.out.println(num+"是水仙花数");
}
else
{
System.out.println(num+"不是水仙花数");
}
}
catch(Exception e)
{
System.out.println("必须输入整数!");
}
}
/**
* 判断一个整数是否是水仙花数
* @param num是一个三位数的整数
* @return false表示不是水仙花数,true表示是水仙花数
*/
private static boolean isNarcissus(int num)
{
boolean input = false;
int a = num/100;//百位数字
int b = (num/10)%10;//十位数字
int c = num%10;//个位数字
/*
//方法一
if(a*a*a+b*b*b+c*c*c==num)
{
input = true;
}
*/
//方法二
if(Math.pow(a,3)+Math.pow(b, 3)+Math.pow(c, 3)==num)
{
input = true;
}
return input;
}
}
运行结果:
测试一:
测试二:
测试三: