41.打印出所有的水仙花數

編程題目:

41.打印出所有的”水仙花數”,所謂”水仙花數”是指一個三位數,其各位數字立方和等於該數本身。例如:153是一個”水仙花數”,因爲153=1的三次方+5的三次方+3的三次方。

示例代碼:

package program.calculation.exercise41;

/**
* 41.打印出所有的"水仙花數",所謂"水仙花數"是指一個三位數,其各位數字立方和等於該數本身。
* 例如:153是一個"水仙花數",因爲153=1的三次方+5的三次方+3的三次方。
* 分析:利用for循環控制100-999個數,每個數分解出個位,十位,百位。
*/

public class NarcissusNumber {
	public static void main(String[] args) {
		
		//獲取水仙花數
		getNarcissusNumber();
		
	}

	//獲取水仙花數
	private static void getNarcissusNumber() {
		int count = 0; //水仙花數個數
		for (int i=100;i<=999;i++) { //三位數
			if(isNarcissusNumber(i)) {
				count++;
				System.out.println(i);
			} 
		}
		System.out.println("水仙花數共有"+count+"個!");
		
	}

	//判斷是否是水仙花數
	private static boolean isNarcissusNumber(int number) {
		
		int unit = (number%10)%10; //個位數 ,注意:number%100與number%10%10不相同,如 110
		int decade = (number/10)%10; //十位數
		int hundred = number/100; //百位數
		//Math.pow(i, j):求i的j次方
		int num = (int)(Math.pow(unit, 3)+Math.pow(decade, 3)+Math.pow(hundred, 3));
		if(number == num){
		   return true;
		}
		return false;

	}
}

結果顯示:

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章