標題:
遞迴演算法
[打印本頁]
作者:
李泳霖
時間:
2021-2-5 11:31
標題:
遞迴演算法
定義:
演算法(函式)中有呼叫自己(Self Calling)的敘述
目的:
重複執行一段程式
(可以用迴圈也可以用遞迴來處理,因此迴圈必可改寫成遞迴,反之亦然)
特性:
1.程式碼簡潔
2.執行效率較迴圈慢
3.將控制權轉移到呼叫的函式
4.呼叫函式後要將變數值及狀態由Stack中Pop出來
(維基百科:堆疊)
遞迴的種類:
遞迴的要素:
1.遞迴關係式:找出問題共通的關係,以便反複呼叫自己
2.終止條件:遞迴結束的條件
白話版的遞迴例子:
從前有座山,山裡有座廟,廟裡有個老和尚講故事,講的什麼呢?從前有座山,山裡有座廟,廟裡有個老和尚講故事,講的什麼呢?從前有座山,山裡有座廟,廟裡有個老和尚講故事,講的什麼呢?從前有座山,山裡有座廟...
作者:
黃彥凱
時間:
2021-2-5 11:46
package a;
public class Ch03 {
static int total(int n)
{
if(n==1)
return 1;
else
return n+total(n-1);
}
public static void main(String[] args) {
// TODO 自動產生的方法 Stub
System.out.println("1+2+....+5="+total(5));
System.out.println("1+2+....+101="+total(101));
System.out.println("1+2+....+257="+total(257));
}
}
複製代碼
作者:
陳勤允
時間:
2021-2-5 11:47
import java.util.Scanner;
public class Ch01 {
static int total(int n){
if(n == 1)
return 1;
else
return n + total(n - 1);
}
public static void main(String[] args) {
// TODO 自動產生的方法 Stub
System.out.println("1+2+......+5=" + total(5));
System.out.println("1+2+......+101=" + total(101));
System.out.println("1+2+......+257=" + total(257));
}
}
複製代碼
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/)
Powered by Discuz! 7.2