程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java中的遞歸詳解(用遞歸完成99乘法表來說解)

Java中的遞歸詳解(用遞歸完成99乘法表來說解)

編輯:關於JAVA

Java中的遞歸詳解(用遞歸完成99乘法表來說解)。本站提示廣大學習愛好者:(Java中的遞歸詳解(用遞歸完成99乘法表來說解))文章只能為提供參考,不一定能成為您想要的結果。以下是Java中的遞歸詳解(用遞歸完成99乘法表來說解)正文


1:通俗完成99乘法表太簡略,是個法式員都邑,完成以下:

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:用遞歸方法完成 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(); 
    } 
  }  
}

遞歸的方法挪用圖示:

每個辦法的挪用都邑發生一個棧幀,壓入到辦法棧,當遞歸挪用的時刻,辦法棧中棧幀的圖示和上圖相似。
去失落辦法中棧幀的援用關系加倍直不雅:以下圖所示:

簡化失落響應的辦法挪用最初履行情形如上圖所示,留意 i 一向在變  j每次都是從1開端 然後遞增到和i相等。
如許上圖順次出棧後就獲得了 99 乘法表:

總結:

嵌套for輪回 和  用遞歸完成 的比擬:

棧 重要是用來寄存棧幀的,每履行一個辦法就會湧現壓棧操作,所以采取遞歸的時刻發生的棧幀比擬多,遞歸就會影響到內存,異常消費內存,而應用for輪回就履行了一個辦法,壓入棧幀一次,只存在一個棧幀,所以比擬節儉內存。

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved