遞歸算法---n的階乘

用遞歸實現n的階乘

Recursion 讀法:[rɪˈkɜ:rʃn] 遞歸
一個正整數的階乘(factorial)是所有小於及等於該數的正整數的積,並且0的階乘爲1。 自然數n的階乘寫作n!。
1808年,基斯頓·卡曼引進這個表示法。 亦即n!=1×2×3×…×n。階乘亦可以遞歸方式定義:0!=1,n!=(n-1)!×n。

package 階乘算法;

import org.omg.CORBA.PUBLIC_MEMBER;

import java.util.Scanner;
    //階乘算法
public class Recursion {
    public int Factorial(int num){
        if (num==0 || num==1){
            return 1;

        }else{
            return num *Factorial (num-1);
        }
    }

    public static void main(String[] args) {

        Recursion recursion = new Recursion();
        Scanner scanner = new Scanner(System.in);
        System.out.println("請輸入一個整數");
        int n = scanner.nextInt();
        int factorial=recursion.Factorial(n);
        System.out.println(factorial);
    }
  }

遞歸的定義和優缺點

遞歸算法是一種直接或者間接地調用自身算法的過程。在計算機編寫程序中,遞歸算法對解決一大類問題是十分有效
的,它往往使算法的描述簡潔而且易於理解。
遞歸算法解決問題的特點:
(1) 遞歸就是在過程或函數裏調用自身。
(2) 在使用遞歸策略時,必須有一個明確的遞歸結束條件,稱爲遞歸出口。
(3) 遞歸算法解題通常顯得很簡潔,但運行效率較低。所以一般不提倡用遞歸算法設計程序
(4) 在遞歸調用的過程當中系統爲每一層的返回點、局部量等開闢了棧來存儲。遞歸次數過多容易造成棧溢出等。所以一般不提倡用遞歸算法設計程序。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章