版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Vincent_Xupt/article/details/79647899
判断一个数是否为水仙花数,最常规的做法就是:分解个十百位,立方相加与原数做相等判断。现在我们来换种思路判断一个三位正整数是否为水仙花数。
代码如下:
import java.util.*;
class Method01
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.print("请输入一个整数:");
int num = input.nextInt();
if(num >= 100 && num <= 999){ //判断输入是否正确,尽量的减少代码的bug.
boolean flag = Method01.judgeDaf(num);
if (flag){
System.out.println(num + "是水仙花数!");
}else{
System.out.println(num + "不是水仙花数!");
}
}else{
System.out.println("Are u kidding me ? Please try again...");
}
}
public static boolean judgeDaf(int num)
{
int sum = 0,temp = num; //由于后面分解num,所以先保存num的值。
while(num!=0)
{
int x = num % 10;
sum += x*x*x;
num /=10;
}
if (sum == temp) {
return true; //是水仙花数,返回布尔值true
}else{
return false;
}
}
}