AJ034 方法的遞歸調用

  遞歸調用 (Recursion Algorithm),是一種特殊的調用形式,指的是方法自己調用自己的形式,遞歸操作的時候必須滿足以下條件:
· 遞歸調用必須有結束條件。
· 每次調用的時候都需要根據需求改變傳遞的參數內容。

例73:實現 1~100數字的累加

public class JavaDemo068 {
	public static void main(String[] args) {
		System.out.println(sum(100));// 1~100的累加
	}

	/**
	 * 數字的累加操作,傳入一個數據累加操作的最大值,而後每次進行數據的遞減,將一直累加到計算數據爲1
	 * 
	 * @param num 要進行累加的操作
	 * @return 數據的累加結果
	 */
	public static int sum(int num) {// 最大的內容
		if (num == 1) {// 遞歸的結束調用
			return 1;// 最終的結果返回1
		}
		return num + sum(num - 1);// 遞歸調用
	}
}

例74:計算 1!+2!+…+90!

public class JavaDemo069 {
	public static void main(String[] args) {
		System.out.println(sum(90));// 實現階乘操作
	}

	/**
	 * 實現階乘的累加操作,根據每一個數字進行階乘操作
	 * 
	 * @param num 要處理的數字
	 * @return 指定數字的階乘結果
	 */
	public static double sum(int num) {
		if (num == 1) {// 遞歸結束條件
			return factorial(1);// 返回1的階乘
		}
		return factorial(num) + sum(num - 1);// 保存階乘結果
	}

	/**
	 * 定義方法實現階乘計算
	 * 
	 * @param num 根據傳入的數字實現階乘
	 * @return 階乘結果
	 */
	public static double factorial(int num) {
		if (num == 1) {// 定義階乘結束條件
			return 1;// 返回 1*1的結果
		}
		return num * factorial(num - 1);// 遞歸調用
	}
}

032至034總結:
1、方法是一段可重複調用的代碼段。
2、方法的重載:方法名稱相同,參數的類型或個數不同,則此方法被稱爲重載。
3、方法遞歸調用指的是本方法的自身重複執行,在使用遞歸調用時一點要設置好方法的結束條件,否則就會出現內存溢出問題,造成程序的中斷。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章