Java遞歸簡單實現n的階乘

1.遞歸的基本概念

在說什麼是遞歸之前,我想大傢定見過這個表情包吧

在這裡插入圖片描述

什麼是遞歸:

程序調用自身的編程技巧稱為遞歸( recursion)遞歸的能力在於用有限的語句來定義對象的無限集合。一般來說,遞歸需要有邊界條件、遞歸前進段和遞歸返回段。當邊界條件不滿足時,遞歸前進;當邊界條件滿足時,遞歸返回。

遞歸的用途:

遞歸可用於解決各種數學問題:八皇後問題、漢諾塔問題、階乘問題、迷宮問題等
遞歸也可用於各種算法:快排、歸並排序、二分查找、分治算法等

2.遞歸的重要規則

  • 執行一個方法就創建一個新的受保護的獨立棧空間
  • 方法的局部變量是獨立的
  • 如果方法使用的是引用數據類型的變量那麼就共享引用類型的數據
  • 遞歸必須向退出遞歸的條件逼近
  • 當一個方法執行完畢或者遇到return就會返回,遵守誰調用就將結果返回給誰

3.利用遞歸實現n的階乘

代碼實現:

public class RecursionTest {
    public static void main(String[] args) {
        int x = factorial(4);
        System.out.println(x); //輸出結果24
    }

    public static int factorial(int n){
        //負數沒有階乘,如果參數是負數就拋出異常
        if (n<0){
            throw new RuntimeException("負數沒有階乘");
        }
        //0和1的階乘都是1
        if (n == 1||n ==0){
            return 1;
        }else {
            //如果參數不是負數且大於1就遞歸調用factorial方法
            int m = factorial(n - 1)*n;
            return m;
        }
    }
}

在這裡插入圖片描述

到此這篇關於Java遞歸簡單實現n的階乘的文章就介紹到這瞭,更多相關Java遞歸內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: