Java 遞歸重難點分析詳解與練習(xí)
遞歸是什么
就是一個方法在執(zhí)行的時候,自己調(diào)用自己。
遞歸的要求:
1 有一個趨近于終止的條件
2 實現(xiàn)遞歸要去推導(dǎo)出一個遞推公式
遞歸就是遞下去,歸上來。求 5 的階乘,代碼舉例:
public static int fact(int n){
if(n == 1){
return n;
}
return n*fact(n - 1);
}
public static void main(String[] args) {
int n = 5;
int ret = fact(n);
System.out.println(ret);
}

這里的終止條件就是 n 等于 1 時,返回 1 就停止遞歸了。否則一直遞歸下去會造成棧區(qū)的溢出。
分析遞歸的過程
這里就分析上面這個代碼的遞歸過程。

如上圖,這就是上面這段遞歸代碼的遞歸過程,先傳入 5 不符合 if 條件。所以繼續(xù)遞歸,直到遞歸到 n == 1 的時候,此時不再遞歸,而是返回 1 .至此,遞下去結(jié)束。開始?xì)w回來,歸回來的時候,最后返回 1 ,然后一路返回,直到最后一個 return 結(jié)束,也就是返回 120 。
遞歸練習(xí)
按順序打印一個數(shù)的每一位
例如:1234 打印出 1 2 3 4 代碼示例:
public static void print1(int n){
if(n == 0){
return;
}
print1(n / 10);
System.out.print(n % 10+" ");
}
public static void main(String[] args) {
int n = 1234;
print1(n);
}

整個遞歸過程如下所示:

到此這篇關(guān)于Java 遞歸重難點分析詳解的文章就介紹到這了,更多相關(guān)Java 遞歸內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
ThreadLocal線程在Java框架中的應(yīng)用及原理深入理解
這篇文章主要介紹了ThreadLocal在Java框架中的應(yīng)用及原理深入理解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01
feign post參數(shù)對象不加@RequestBody的使用說明
這篇文章主要介紹了feign post參數(shù)對象不加@RequestBody的使用說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10
深入了解JVM(Java虛擬機)內(nèi)存結(jié)構(gòu)
Java虛擬機(Java Virtual Machine,JVM)是Java程序的運行環(huán)境,它是一個抽象的計算機模型,通過解釋和執(zhí)行Java字節(jié)碼來運行Java程序,本將大家深入了解JVM(Java虛擬機)內(nèi)存結(jié)構(gòu),需要的朋友可以參考下2023-08-08
關(guān)于MyBatis結(jié)果映射的實例總結(jié)
結(jié)果集映射主要是為了解決屬性名和類型名不一致的問題,下面這篇文章主要給大家介紹了關(guān)于MyBatis結(jié)果映射的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-05-05
基于Springboot執(zhí)行多個定時任務(wù)并動態(tài)獲取定時任務(wù)信息
這篇文章主要為大家詳細(xì)介紹了基于Springboot執(zhí)行多個定時任務(wù)并動態(tài)獲取定時任務(wù)信息,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-04-04
Mybatis-Plus最優(yōu)化持久層開發(fā)過程
Mybatis-plus(簡稱MP)是一個Mybatis的增強工具,在mybatis的基礎(chǔ)上只做增強不做改變,提高效率,自動生成單表的CRUD功能,這篇文章主要介紹了Mybatis-Plus最優(yōu)化持久層開發(fā),需要的朋友可以參考下2024-07-07
關(guān)于Maven parent.relativePath說明
Maven中的relativePath用于指定父項目pom.xml的相對路徑,默認(rèn)值為../pom.xml,這個配置幫助Maven在構(gòu)建時定位父模塊的位置,確保模塊間的依賴關(guān)系正確,relativePath可以指向本地或遠(yuǎn)程倉庫中的父項目,如果不需要尋找父項目,可以將其設(shè)置為空2024-09-09

