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!