Java - 判断一个整数是否为水仙花数(循环分解,立方相加)

版权声明:本文为博主原创文章,未经博主允许不得转载。 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;
		}
	}
}


猜你喜欢

转载自blog.csdn.net/Vincent_Xupt/article/details/79647899