Java中計算水仙花數
阿新 • • 發佈:2018-11-15
找出水仙花數
下面是今天解決的問題,找出水仙花數,並統計出來
有規律的數字:
水仙花數:
- 水仙花數(Narcissistic number)也被稱為超完全數字不變數(pluperfect digital invariant, PPDI)、自戀數、自冪數、阿姆斯壯數或阿姆斯特朗數(Armstrong number),水仙花數是指一個 3 位數,它的每個位上的數字的 3次冪之和等於它本身(例如:1^3 + 5^3+ 3^3 = 153)。
自冪數:
- 三位自冪數:水仙花數,四位自冪數:四葉玫瑰數,五位自冪數:五角星數,六位自冪數:六合數,七位自冪數:北斗七星數,八位自冪數:八仙數,九位自冪數:九九重陽數,十位自冪數:十全十美數。
題目分析:
/*
題目:打印出所有的”水仙花數”,
所謂”水仙花數”是指一個三位數,
其各位數字立方和等於該數本身。
例如:153是一個”水仙花數”,
153=1^3+5^3+3^3
程式分析:
1.得到所有的三位數
2.將得到的三位數分解成,個位、十位、百位
3.用條件判斷語句判斷該數是否是水仙花數,返回一個boolean值
4.判斷迴圈條件,執行迴圈體
變數個數:
個位:int a ;十位:int b;百位 int c;
數學公式:n = a*a*a + b*b*b +c*c*c;
*/
public class DaffodilNumb{
public static void main(String[] args){
//定義一個計數器用於統計水仙花個數
int c = 0;
//得到所有的三位數
for(int i = 100; i < 1000; i++){
if(isDaffodilNumb(i)){
c++;
System.out.println(i);
}
}
System.out.println("水仙花數的個數:"+c);
}
//建立一個方法用於判斷是否是水仙花數
public static boolean isDaffodilNumb(int n){
//分解三位數
//個位數
int a = n % 10;
//十位數
int b = (n / 10) % 10;
//百位數
int c = n / 100;
//判斷是否是水仙花數
if(n==(a*a*a +b*b*b+c*c*c)){
return true;
}else{
return false;
}
}
}
總結:
練習寫程式的第三天,今天解決的題目十分的簡單,所用的時間不到10分鐘,雖然它很簡單,但仍然包含了一個小程式的分析步驟,可謂是“麻雀雖小,五張俱全”。其實按照步驟解程式題目,目前所遇到的題目都是可以解決的。至今天為止,深刻的感受到學習程式語言要有很好的數學功底,現階段的程式設計練習都只是計算初等數學的題目,希望自己堅持到高等數學階段。
- 第三天的學習思維導圖