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

Java中的遞歸詳解(用遞歸實(shí)現(xiàn)99乘法表來(lái)講解)

 更新時(shí)間:2015年03月28日 10:08:54   投稿:junjie  
這篇文章主要介紹了Java中的遞歸詳解(用遞歸實(shí)現(xiàn)99乘法表來(lái)講解),本文給出了普通的99乘法實(shí)現(xiàn)方法和用遞歸實(shí)現(xiàn)的方法,并對(duì)比它們的不同,體現(xiàn)出遞歸的運(yùn)用及理解,需要的朋友可以參考下

1:普通實(shí)現(xiàn)99乘法表太簡(jiǎn)單,是個(gè)程序員都會(huì),實(shí)現(xiàn)如下:

package test.ms;

public class Test99 {
 
  public static void main(String[] args) {
 
  for(int i=1; i<=9;i++){
   for(int j=1; j<=i; j++){
   System.out.print(j+" * "+i+ " = "+(i*j) +" ");
   }
   System.out.println();
  }
}
  
}

2:用遞歸方式實(shí)現(xiàn) 99乘法表
代碼如下:

package test.ms;

public class MultiTable {
 public static void main(String args[]) { 
    m(9); 
  } 
 
  /** 
   * 打印出九九乘法表 
   * @param i 
   */ 
  public static void m(int i) { 
    if (i == 1) { 
      System.out.println("1*1=1 "); 
    } else { 
      m(i - 1); 
      for (int j = 1; j <= i; j++) { 
        System.out.print(j + "*" + i + "=" + j * i + " "); 
      } 
      System.out.println(); 
    } 
  }  
}

遞歸的方式調(diào)用圖示:

每一個(gè)方法的調(diào)用都會(huì)產(chǎn)生一個(gè)棧幀,壓入到方法棧,當(dāng)遞歸調(diào)用的時(shí)候,方法棧中棧幀的圖示和上圖類似。
去掉方法中棧幀的引用關(guān)系更加直觀:如下圖所示:

簡(jiǎn)化掉相應(yīng)的方法調(diào)用最后執(zhí)行情況如上圖所示,注意 i 一直在變  j每次都是從1開(kāi)始 然后遞增到和i相等。
這樣上圖依次出棧后就得到了 99 乘法表:

總結(jié):

嵌套for循環(huán) 和  用遞歸實(shí)現(xiàn) 的比較:

棧 主要是用來(lái)存放棧幀的,每執(zhí)行一個(gè)方法就會(huì)出現(xiàn)壓棧操作,所以采用遞歸的時(shí)候產(chǎn)生的棧幀比較多,遞歸就會(huì)影響到內(nèi)存,非常消耗內(nèi)存,而使用for循環(huán)就執(zhí)行了一個(gè)方法,壓入棧幀一次,只存在一個(gè)棧幀,所以比較節(jié)省內(nèi)存。

歡迎狠狠的拍磚。直到砸暈。

相關(guān)文章

  • SpringBoot使用Hibernate攔截器實(shí)現(xiàn)時(shí)間自動(dòng)注入的操作代碼

    SpringBoot使用Hibernate攔截器實(shí)現(xiàn)時(shí)間自動(dòng)注入的操作代碼

    這篇文章主要介紹了SpringBoot使用Hibernate攔截器實(shí)現(xiàn)時(shí)間自動(dòng)注入的操作代碼,主要包括hibernate攔截器的相關(guān)知識(shí),結(jié)合實(shí)例代碼給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-10-10
  • SpringMVC攔截器零基礎(chǔ)掌握

    SpringMVC攔截器零基礎(chǔ)掌握

    攔截器(Interceptor)是一種動(dòng)態(tài)攔截方法調(diào)用的機(jī)制,在SpringMVC中動(dòng)態(tài)攔截控制器方法的執(zhí)行。本文將詳細(xì)講講SpringMVC中攔截器的概念及入門案例,感興趣的可以嘗試一下
    2023-03-03
  • 詳解Java中的Lambda表達(dá)式

    詳解Java中的Lambda表達(dá)式

    這篇文章主要介紹了Java中的Lambda表達(dá)式的的相關(guān)資料,文中講解非常詳細(xì),示例代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • SpringBoot使用JavaMailSender實(shí)現(xiàn)發(fā)送郵件

    SpringBoot使用JavaMailSender實(shí)現(xiàn)發(fā)送郵件

    JavaMailSender是Spring Framework中的一個(gè)接口,用于發(fā)送電子郵件,本文主要為大家詳細(xì)介紹了SpringBoot如何使用JavaMailSender實(shí)現(xiàn)發(fā)送郵件,需要的可以參考下
    2023-12-12
  • 使用SpringCloud Gateway解決跨域問(wèn)題

    使用SpringCloud Gateway解決跨域問(wèn)題

    本文給大家介紹了使用SpringCloud Gateway解決跨域問(wèn)題,Spring Cloud Gateway是一個(gè)基于Spring Framework的微服務(wù)網(wǎng)關(guān),使用Spring Cloud Gateway的跨域配置能夠有效管理不同服務(wù)之間的通信,提高系統(tǒng)的可維護(hù)性和安全性,需要的朋友可以參考下
    2024-02-02
  • Java開(kāi)發(fā)中可以防止界面假死的刷新代碼

    Java開(kāi)發(fā)中可以防止界面假死的刷新代碼

    今天小編就為大家分享一篇關(guān)于Java開(kāi)發(fā)中可以防止界面假死的刷新代碼,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • java 中復(fù)合機(jī)制的實(shí)例詳解

    java 中復(fù)合機(jī)制的實(shí)例詳解

    這篇文章主要介紹了java 中復(fù)合機(jī)制的實(shí)例詳解的相關(guān)資料,希望通過(guò)本文大家能了解繼承和復(fù)合的區(qū)別并應(yīng)用復(fù)合這種機(jī)制,需要的朋友可以參考下
    2017-09-09
  • 使用FileReader采用的默認(rèn)編碼

    使用FileReader采用的默認(rèn)編碼

    這篇文章主要介紹了使用FileReader采用的默認(rèn)編碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Spring?Security?過(guò)濾器注冊(cè)脈絡(luò)梳理

    Spring?Security?過(guò)濾器注冊(cè)脈絡(luò)梳理

    這篇文章主要介紹了Spring?Security過(guò)濾器注冊(cè)脈絡(luò)梳理,Spring?Security在Servlet的過(guò)濾鏈中注冊(cè)了一個(gè)過(guò)濾器FilterChainProxy,它會(huì)把請(qǐng)求代理到Spring?Security自己維護(hù)的多個(gè)過(guò)濾鏈,每個(gè)過(guò)濾鏈會(huì)匹配一些URL,如果匹配則執(zhí)行對(duì)應(yīng)的過(guò)濾器
    2022-08-08
  • Spring?JDBC使用步驟和事務(wù)管理

    Spring?JDBC使用步驟和事務(wù)管理

    Spring?JDBC是Spring框架用來(lái)處理關(guān)系型數(shù)據(jù)庫(kù)的模塊,對(duì)JDBC的API進(jìn)行了封裝,這篇文章主要介紹了Spring?JDBC使用步驟和事務(wù)管理,需要的朋友可以參考下
    2023-12-12

最新評(píng)論

松溪县| 台东县| 饶平县| 崇阳县| 福鼎市| 清丰县| 禄劝| 乌拉特前旗| 沧源| 阿合奇县| 巨野县| 五台县| 曲阳县| 汶上县| 西昌市| 蓬安县| 耒阳市| 疏勒县| 潞西市| 阜城县| 新平| 宣汉县| 咸丰县| 阳西县| 油尖旺区| 平定县| 香格里拉县| 礼泉县| 琼海市| 内江市| 滁州市| 兴安盟| 石渠县| 四子王旗| 什邡市| 临猗县| 郑州市| 明星| 许昌县| 吉木乃县| 昌图县|