1. 程式人生 > >使用遞迴輸出1-100;9*9乘法表

使用遞迴輸出1-100;9*9乘法表

遞迴演算法是一種直接或者間接地呼叫自身演算法的過程。在計算機編寫程式中,遞迴演算法對解決一大類問題是十分有效的,它往往使演算法的描述簡潔而且易於理解。遞迴演算法解決問題的特點:(1) 遞迴就是在過程或函式裡呼叫自身。(2) 在使用遞迴策略時,必須有一個明確的遞迴結束條件,稱為遞迴出口。【這點尤為重要】(3) 遞迴演算法解題通常顯得很簡潔,但遞迴演算法解題的執行效率較低。所以一般不提倡用遞迴演算法設計程式。(4) 在遞迴呼叫的過程當中系統為每一層的返回點、區域性量等開闢了棧來儲存。遞迴次數過多容易造成棧溢位等。所以一般不提倡用遞迴演算法設計程式。列印從1到100,普通方法是迴圈100次,可用遞迴列印【實際中不建議用遞迴】;網上看過其他非遞迴非迴圈方法直接列印
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條件放到一起)
//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();
		}
	}
}
採用遞迴的方法:(案例中將i,j定義為static)
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);
		}
	}
}
最後畫圖說明了下,不足之處望指出!