使用遞迴輸出1-100;9*9乘法表
阿新 • • 發佈:2019-01-23
遞迴演算法是一種直接或者間接地呼叫自身演算法的過程。在計算機編寫程式中,遞迴演算法對解決一大類問題是十分有效的,它往往使演算法的描述簡潔而且易於理解。遞迴演算法解決問題的特點:(1) 遞迴就是在過程或函式裡呼叫自身。(2) 在使用遞迴策略時,必須有一個明確的遞迴結束條件,稱為遞迴出口。【這點尤為重要】(3) 遞迴演算法解題通常顯得很簡潔,但遞迴演算法解題的執行效率較低。所以一般不提倡用遞迴演算法設計程式。(4) 在遞迴呼叫的過程當中系統為每一層的返回點、區域性量等開闢了棧來儲存。遞迴次數過多容易造成棧溢位等。所以一般不提倡用遞迴演算法設計程式。列印從1到100,普通方法是迴圈100次,可用遞迴列印【實際中不建議用遞迴】;網上看過其他非遞迴非迴圈方法直接列印
99乘法表,普通方法是寫2個for迴圈(內層用j,外層用i);也可以寫一層for(i,j條件放到一起)
public class Print1_100 { public static void main(String[] args) { printX(1,100); } public static void printX(int start,int end){ if(start>end){ return; } System.out.println(start); start++; printX(start,end); } }
99乘法表,普通方法是寫2個for迴圈(內層用j,外層用i);也可以寫一層for(i,j條件放到一起)
採用遞迴的方法:(案例中將i,j定義為static)//2層for迴圈 public class Jj { public static void main(String[] args) { // TODO 自動生成的方法存根 for (int i = 1; i <= 9; i++) { for (int j = 1; j <= i; j++) { System.out.print(j + "*" + i + "=" + i * j); if(j<i)//是否填寫"" System.out.print(" "); } System.out.println(); } } }
public class Test { static int i = 1; static int j = 1; public static void main(String[] args) { jj(9); } public static void jj(int n) { if (i > n) { return; } for (; i <= n;) { System.out.print(j + "*" + i + "=" + (i * j) + " "); if (i == j) { j = 1; i++; System.out.println(); continue; } j++; jj(i); } } }
最後畫圖說明了下,不足之處望指出!