最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java 遞歸重難點分析詳解與練習(xí)

 更新時間:2021年11月05日 14:44:24   作者:Lockey-s  
一說起遞歸,我想每個人都不陌生。舉個從小就聽過的例子:從前有座山,山里有座廟,廟里有個和尚,和尚在講故事,從前有座山,山里有座廟,廟里有個和尚,和尚在講故事,從前有座山,要理解遞歸,就得先了解什么是遞歸,實際上這句話就是一個遞歸

遞歸是什么

就是一個方法在執(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)用及原理深入理解

    這篇文章主要介紹了ThreadLocal在Java框架中的應(yīng)用及原理深入理解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • feign post參數(shù)對象不加@RequestBody的使用說明

    feign post參數(shù)對象不加@RequestBody的使用說明

    這篇文章主要介紹了feign post參數(shù)對象不加@RequestBody的使用說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • 深入了解JVM(Java虛擬機)內(nèi)存結(jié)構(gòu)

    深入了解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é)

    關(guān)于MyBatis結(jié)果映射的實例總結(jié)

    結(jié)果集映射主要是為了解決屬性名和類型名不一致的問題,下面這篇文章主要給大家介紹了關(guān)于MyBatis結(jié)果映射的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • 基于Springboot執(zhí)行多個定時任務(wù)并動態(tài)獲取定時任務(wù)信息

    基于Springboot執(zhí)行多個定時任務(wù)并動態(tài)獲取定時任務(wù)信息

    這篇文章主要為大家詳細(xì)介紹了基于Springboot執(zhí)行多個定時任務(wù)并動態(tài)獲取定時任務(wù)信息,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • java中List集合子類特點淺析

    java中List集合子類特點淺析

    java.util.List接口繼承自Collection接口,是單列集合的一個重要分支,習(xí)慣性地會將實現(xiàn)了List接口的對象稱為List集合,下面這篇文章主要給大家介紹了關(guān)于java中List集合子類特點的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-01-01
  • MyBatis中if標(biāo)簽的基本使用

    MyBatis中if標(biāo)簽的基本使用

    本文介紹了MyBatis框架中的if標(biāo)簽的使用方法,包括動態(tài)生成SQL語句、處理不同類型的參數(shù)和if標(biāo)簽進(jìn)行條件判斷,具有一定的參考價值,感興趣的可以了解一下
    2024-12-12
  • Vue實現(xiàn)驗證碼登錄的超詳細(xì)步驟

    Vue實現(xiàn)驗證碼登錄的超詳細(xì)步驟

    這篇文章主要給大家介紹了關(guān)于Vue實現(xiàn)驗證碼登錄的超詳細(xì)步驟,我們在使用vue進(jìn)行前端開發(fā)時都需要登錄驗證,文中通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-09-09
  • Mybatis-Plus最優(yōu)化持久層開發(fā)過程

    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說明

    關(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

最新評論

五大连池市| 会泽县| 新沂市| 仙桃市| 三明市| 石台县| 临潭县| 屏山县| 北票市| 新丰县| 慈溪市| 常德市| 固安县| 信丰县| 荔波县| 霸州市| 渑池县| 清水县| 宽甸| 博爱县| 武山县| 天长市| 神农架林区| 延庆县| 沂源县| 砚山县| 锡林浩特市| 恩施市| 安化县| 北流市| 大邑县| 璧山县| 仪陇县| 广汉市| 台江县| 荔浦县| 镇平县| 桐乡市| 凌源市| 台中县| 个旧市|