亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

遞歸是什么

就是一個(gè)方法在執(zhí)行的時(shí)候,自己調(diào)用自己。

遞歸的要求:
1 有一個(gè)趨近于終止的條件
2 實(shí)現(xiàn)遞歸要去推導(dǎo)出一個(gè)遞推公式

遞歸就是遞下去,歸上來(lái)。求 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 時(shí),返回 1 就停止遞歸了。否則一直遞歸下去會(huì)造成棧區(qū)的溢出。

分析遞歸的過(guò)程

這里就分析上面這個(gè)代碼的遞歸過(guò)程。

在這里插入圖片描述

如上圖,這就是上面這段遞歸代碼的遞歸過(guò)程,先傳入 5 不符合 if 條件。所以繼續(xù)遞歸,直到遞歸到 n == 1 的時(shí)候,此時(shí)不再遞歸,而是返回 1 .至此,遞下去結(jié)束。開(kāi)始?xì)w回來(lái),歸回來(lái)的時(shí)候,最后返回 1 ,然后一路返回,直到最后一個(gè) return 結(jié)束,也就是返回 120 。

遞歸練習(xí)

按順序打印一個(gè)數(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);
}

在這里插入圖片描述

整個(gè)遞歸過(guò)程如下所示:

在這里插入圖片描述

到此這篇關(guān)于Java 遞歸重難點(diǎn)分析詳解的文章就介紹到這了,更多相關(guān)Java 遞歸內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解讀Mapper與Mapper.xml文件之間匹配的問(wèn)題

    解讀Mapper與Mapper.xml文件之間匹配的問(wèn)題

    這篇文章主要介紹了解讀Mapper與Mapper.xml文件之間匹配的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • SpringBoot整合Mybatis Plus實(shí)現(xiàn)基本CRUD的示例代碼

    SpringBoot整合Mybatis Plus實(shí)現(xiàn)基本CRUD的示例代碼

    Mybatis Plus是在Mybatis的基礎(chǔ)上的增強(qiáng),使得我們對(duì)一些基本的CRUD使用起來(lái)更方便,本文主要介紹了SpringBoot整合Mybatis Plus實(shí)現(xiàn)基本CRUD的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-05-05
  • Java 凍結(jié)或解除凍結(jié)Excel中的行和列的方法

    Java 凍結(jié)或解除凍結(jié)Excel中的行和列的方法

    這篇文章主要介紹了Java 凍結(jié)或解除凍結(jié)Excel中的行和列的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • 淺談Spring嵌套事務(wù)是怎么回滾的

    淺談Spring嵌套事務(wù)是怎么回滾的

    本文主要介紹了Spring嵌套事務(wù)是怎么回滾的,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Java的鎖機(jī)制:synchronized和CAS詳解

    Java的鎖機(jī)制:synchronized和CAS詳解

    這篇文章主要介紹了Java的鎖機(jī)制synchronized和CAS詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-09-09
  • MyBatis-Plus里面的增刪改查詳解(化繁為簡(jiǎn))

    MyBatis-Plus里面的增刪改查詳解(化繁為簡(jiǎn))

    這篇文章主要給大家介紹了關(guān)于MyBatis-Plus里面的增刪改查的相關(guān)資料,Mybatis-Plus是一個(gè)基于Mybatis的增強(qiáng)工具,可以簡(jiǎn)化Mybatis的開(kāi)發(fā),提高開(kāi)發(fā)效率,需要的朋友可以參考下
    2023-07-07
  • java中優(yōu)化大量if...else...方法總結(jié)

    java中優(yōu)化大量if...else...方法總結(jié)

    在我們平時(shí)的開(kāi)發(fā)過(guò)程中,經(jīng)??赡軙?huì)出現(xiàn)大量If else的場(chǎng)景,代碼顯的很臃腫,非常不優(yōu)雅,下面這篇文章主要給大家介紹了關(guān)于java中優(yōu)化大量if...else...方法的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • Jlabel實(shí)現(xiàn)內(nèi)容自動(dòng)換行簡(jiǎn)單實(shí)例

    Jlabel實(shí)現(xiàn)內(nèi)容自動(dòng)換行簡(jiǎn)單實(shí)例

    這篇文章主要介紹了Jlabel實(shí)現(xiàn)內(nèi)容自動(dòng)換行簡(jiǎn)單實(shí)例,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • SpringAop自定義切面注解、自定義過(guò)濾器及ThreadLocal詳解

    SpringAop自定義切面注解、自定義過(guò)濾器及ThreadLocal詳解

    這篇文章主要介紹了SpringAop自定義切面注解、自定義過(guò)濾器及ThreadLocal詳解,Aspect(切面)通常是一個(gè)類,里面可以定義切入點(diǎn)和通知(切面 = 切點(diǎn)+通知),execution()是最常用的切點(diǎn)函數(shù),需要的朋友可以參考下
    2024-01-01
  • 詳解SpringBoot2.0的@Cacheable(Redis)緩存失效時(shí)間解決方案

    詳解SpringBoot2.0的@Cacheable(Redis)緩存失效時(shí)間解決方案

    這篇文章主要介紹了詳解SpringBoot2.0的@Cacheable(Redis)緩存失效時(shí)間解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04

最新評(píng)論