1. 程式人生 > >Java獲取三位的水仙花數及統計個數——for,while,do···while

Java獲取三位的水仙花數及統計個數——for,while,do···while

水仙花數的定義

在數論中,水仙花數(Narcissistic number)[1][2],也被稱為超完全數字不變數(pluperfect digital invariant, PPDI)[3]、自戀數、自冪數、阿姆斯壯數或阿姆斯特朗數(Armstrong number)[4] ,用來描述一個N位非負整數,其各位數字的N次方和等於該數本身。

程式實現

1、For迴圈實現

package com.itheima_04;
//統計水仙花的個數
public class ForTest5 {
	public static void main(String[] args) {
		//定義統計水仙花個數的變數
		int geshu = 0;
		//獲取資料的個位,十位,百位
		for(int i=100;i<=999;i++) {
			int ge = i%10;
			int shi = i/10%10;
			int bai = i/100%10;
			//判斷是否位水仙花數
			if(i==ge*ge*ge+shi*shi*shi+bai*bai*bai) {
				geshu += 1;
			}
		}
		//輸出水鮮花的個數
	System.out.println("水仙花數:"+geshu);
	}
}

2、while迴圈實現

package com.itheima_05;
//統計水仙花數的個數
public class WhileTest2 {
	public static void main(String[] args) {
		//定義初始化變數
		int i = 100;
		//定義計數變數
		int geshu = 0;
		//while迴圈
		
		while(i<=999) {
			
			//獲取個十百位
			int ge = i%10;
			int shi = i/10%10;
			int bai = i/100%10;
			//判斷是否為水仙花數
			if(ge*ge*ge+shi*shi*shi+bai*bai*bai==i){
				System.out.println(i);
				geshu++;
			}
			i++;

		}
		System.out.println("水仙花數:"+geshu);
	}
}

3、do···while迴圈實現

public class DoWhileTest2 {
	public static void main(String[] args) {
		
		int i = 100;
		int geshu = 0;
		
		do {
			
			int ge = i%10;
			int shi = i/10%10;
			int bai = i/100%10;
			if((ge*ge*ge+shi*shi*shi+bai*bai*bai)==i) {
				System.out.println(i);
				geshu++;
			}
			i++;
		}while(i<999);
		System.out.println("水仙花數:"+geshu);
	}

程式結果

153 370 371 407 水仙花數4