1. 程式人生 > >判斷一個整數是否為水仙花數(迴圈分解,立方相加)

判斷一個整數是否為水仙花數(迴圈分解,立方相加)

判斷一個數是否為水仙花數,最常規的做法就是:分解個十百位,立方相加與原數做相等判斷。現在我們來換種思路判斷一個三位正整數是否為水仙花數。

程式碼如下:

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