1. 程式人生 > >Java中計算水仙花數

Java中計算水仙花數

找出水仙花數

下面是今天解決的問題,找出水仙花數,並統計出來


有規律的數字:

水仙花數:
  • 水仙花數(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分鐘,雖然它很簡單,但仍然包含了一個小程式的分析步驟,可謂是“麻雀雖小,五張俱全”。其實按照步驟解程式題目,目前所遇到的題目都是可以解決的。至今天為止,深刻的感受到學習程式語言要有很好的數學功底,現階段的程式設計練習都只是計算初等數學的題目,希望自己堅持到高等數學階段。

水仙花數


  • 第三天的學習思維導圖
    這裡寫圖片描述