初學者剛接觸遞迴,就會寫遞迴(recursive)函數,通常都是同儕中的佼佼者,要寫遞迴,需要清楚的邏輯思緒,因此大都屬於進階課程。

【重點整理】
1.所謂遞迴,就是在函數內,重複使用函數本身的方式。
2.遞迴需具備兩個主要因素:
    A.若遞迴函數為 f(n),則 f(n) 與 f(n-1) 有何關係?
    B.在重複呼叫本身函數時,何時才能停止呼叫?
3.遞迴優點:
    A.對於複雜問題,程式碼較為精簡。
    B.程式碼可讀性高。
    C.函數內使用變數較少。
4.遞迴缺點:
    A.因為要重複呼叫函數,所以比較費時。
    B.每呼叫一次函數,必定耗費一些堆疊空間,造成多餘的記憶體使用量。
5.為了避免太多參數,造成堆疊空間浪費,若函數運行中,不會改變的參數請盡量使用全域性參數。
    C.學習不易,初學者不容易上手。

【常見範例】
1.最簡單的等差級數和 1+2+3+...+N
2.等差級數和
3.等比級數和
4.計算 N!
5.計算 Xn
6.最大公因數
7.費氏數列
8.計算 12+22+32+...+n2
9.反向輸出文字
10.反向計算數值
11.漢諾易塔