Java遞歸簡單實現(xiàn)n的階乘
1.遞歸的基本概念
在說什么是遞歸之前,我想大家定見過這個表情包吧
什么是遞歸:
程序調(diào)用自身的編程技巧稱為遞歸( recursion
)遞歸的能力在于用有限的語句來定義對象的無限集合。一般來說,遞歸需要有邊界條件、遞歸前進段和遞歸返回段。當(dāng)邊界條件不滿足時,遞歸前進;當(dāng)邊界條件滿足時,遞歸返回。
遞歸的用途:
遞歸可用于解決各種數(shù)學(xué)問題:八皇后問題、漢諾塔問題、階乘問題、迷宮問題等
遞歸也可用于各種算法:快排、歸并排序、二分查找、分治算法等
2.遞歸的重要規(guī)則
- 執(zhí)行一個方法就創(chuàng)建一個新的受保護的獨立??臻g
- 方法的局部變量是獨立的
- 如果方法使用的是引用數(shù)據(jù)類型的變量那么就共享引用類型的數(shù)據(jù)
- 遞歸必須向退出遞歸的條件逼近
- 當(dāng)一個方法執(zhí)行完畢或者遇到return就會返回,遵守誰調(diào)用就將結(jié)果返回給誰
3.利用遞歸實現(xiàn)n的階乘
代碼實現(xiàn):
public class RecursionTest { public static void main(String[] args) { int x = factorial(4); System.out.println(x); //輸出結(jié)果24 } public static int factorial(int n){ //負數(shù)沒有階乘,如果參數(shù)是負數(shù)就拋出異常 if (n<0){ throw new RuntimeException("負數(shù)沒有階乘"); } //0和1的階乘都是1 if (n == 1||n ==0){ return 1; }else { //如果參數(shù)不是負數(shù)且大于1就遞歸調(diào)用factorial方法 int m = factorial(n - 1)*n; return m; } } }
到此這篇關(guān)于Java遞歸簡單實現(xiàn)n的階乘的文章就介紹到這了,更多相關(guān)Java遞歸內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Struts2學(xué)習(xí)筆記(9)-Result配置全局結(jié)果集
這篇文章主要介紹Struts2中使用Result配置全局結(jié)果集的方法,希望能給大家做一個參考。2016-06-06詳解SpringMVC中設(shè)置靜態(tài)資源不被攔截的問題
這篇文章主要介紹了詳解SpringMVC中設(shè)置靜態(tài)資源不被攔截的問題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02springboot的http.server.requests服務(wù)請求流程源碼
這篇文章主要為大家介紹了springboot的http.server.requests服務(wù)請求流程源碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12