Java獲取三位的水仙花數及統計個數——for,while,do···while
阿新 • • 發佈:2018-12-16
水仙花數的定義
在數論中,水仙花數(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