1. 程式人生 > 其它 >|NO.Z.00031|——————————|BigDataEnd|——|Java&方法封裝.V13|---------------------------------------------|Java.v13|階乘計算方式二|遞迴方式|

|NO.Z.00031|——————————|BigDataEnd|——|Java&方法封裝.V13|---------------------------------------------|Java.v13|階乘計算方式二|遞迴方式|



[BigDataJava:Java&方法封裝.V13]                                                                             [BigDataJava.面向物件] [|章節二|方法和封裝|階乘計算方式二|遞迴方式|]








一、階乘的計算方式二:遞迴的方式
### --- 案例題目

~~~     ——>        程式設計實現引數n的階乘並返回,所謂階乘就是從1累乘到n的結果。
二、程式設計程式碼
### --- 程式設計程式碼

/*
    程式設計實現累乘積的計算並列印
 */
public class JieChengTest {
    
    // 自定義成員方法實現將引數n的階乘計算出來並返回
    // 1! = 1;     2! = 1*2;   3! = 1*2*3;   ...   n! = 1*2*3*...*n;
    int show(int n) { // int n=5; int n = 4; int n = 3; int n = 2;  int n = 1;
        // 遞推的方式 
        /*
        int num = 1;
        for(int i = 1; i <= n; i++) {
            num *= i;
        }
        return num;
        */
        /*
            5! = 5 * 4 * 3 * 2 * 1;
            4! = 4 * 3 * 2 * 1;
            3! = 3 * 2 * 1;
            2! = 2 * 1;
            1! = 1;
            
            5! = 5 * 4!;
            4! = 4 * 3!;
            3! = 3 * 2!;
            2! = 2 * 1!;
            1! = 1;
            
            n! = n * (n-1)!;
          
        */
        // 遞迴的方式
        // 當n的數值為1時,則階乘的結果就是1
        /*
        if(1 == n) {
            return 1;
        }
        */
        if(1 == n) return 1;
        // 否則階乘的結果就是 n*(n-1)!
        return n*show(n-1);
        // show(5) => return 5*show(4); => 120
        // show(4) => return 4*show(3); => 24 
        // show(3) => return 3*show(2); => 6
        // show(2) => return 2*show(1); => 2
        // show(1) => return 1;         => 1
    }
    
    public static void main(String[] args) {
        
        // 1.宣告JieChengTest型別的引用指向該型別的物件
        JieChengTest jct = new JieChengTest();
        // 2.呼叫方法進行計算並列印
        int res = jct.show(5);
        System.out.println("最終的計算結果是:" + res); // 120
    }
}
三、編譯列印
### --- 編譯

C:\Users\Administrator\Desktop>javac JieChengTest.java
### --- 列印輸出

C:\Users\Administrator\Desktop>java JieChengTest
最終的計算結果是:120








===============================END===============================


Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart                                                                                                                                                    ——W.S.Landor



來自為知筆記(Wiz)