moea_joint_essay
105年
[資訊] 資訊管理、程式設計
第 一 題
📖 題組:
「遞迴」與「迴圈」是程式設計重要的手法,請回答下列問題:
「遞迴」與「迴圈」是程式設計重要的手法,請回答下列問題:
📝 此題為申論題,共 2 小題
小題 (一)
兩設計手法相比,「遞迴」的優點、缺點為何?(8 分)
思路引導 VIP
說明遞迴(Recursion)的優點(程式碼簡潔、可讀性高、易於實作數學歸納及樹狀圖形走訪)以及缺點(需頻繁呼叫函式導致執行時間長、大量佔用堆疊記憶體易引發 Stack Overflow)。
小題 (二)
下列左右兩邊之程式碼,左邊以「遞迴」手法撰寫,右邊擬將之改為以「迴圈」手法撰寫,請於右邊程式空白處填入正確程式碼。(9分)
思路引導 VIP
這是一個計算費氏數列(Fibonacci sequence)的程式。迴圈版本中,已知 fib_n_2 代表 f(n-2),fib_n_1 代表 f(n-1)。每次迴圈中,需計算出 fib_n = fib_n_1 + fib_n_2,然後往前平移狀態以利下一次迴圈計算。