免費開始練習
moea_joint_essay 105年 [資訊] 資訊管理、程式設計

第 二 題

📖 題組:
「遞迴」與「迴圈」是程式設計重要的手法,請回答下列問題:
📝 此題為申論題,共 2 小題

小題 (二)

下列左右兩邊之程式碼,左邊以「遞迴」手法撰寫,右邊擬將之改為以「迴圈」手法撰寫,請於右邊程式空白處填入正確程式碼。(9分)
題目圖片

思路引導 VIP

這是一個計算費氏數列(Fibonacci sequence)的程式。迴圈版本中,已知 fib_n_2 代表 f(n-2),fib_n_1 代表 f(n-1)。每次迴圈中,需計算出 fib_n = fib_n_1 + fib_n_2,然後往前平移狀態以利下一次迴圈計算。

🤖
AI 詳解
AI 專屬家教

請在迴圈區塊空白處填入以下程式碼:

fib_n = fib_n_1 + fib_n_2;

小題 (一)

兩設計手法相比,「遞迴」的優點、缺點為何?(8 分)
題目圖片

思路引導 VIP

說明遞迴(Recursion)的優點(程式碼簡潔、可讀性高、易於實作數學歸納及樹狀圖形走訪)以及缺點(需頻繁呼叫函式導致執行時間長、大量佔用堆疊記憶體易引發 Stack Overflow)。

🤖
AI 詳解
AI 專屬家教

遞迴 (Recursion) 的優點:

  1. 程式碼通常更為簡潔、容易閱讀與理解。
  2. 適合解決具有自然層次或遞迴結構的問題(如樹狀結構遍歷、河內塔問題、圖形搜尋等),能輕易將數學歸納法的邏輯轉換為程式碼。

🏷️ 相關主題

物件導向程式設計與系統分析核心概念
查看更多「[資訊] 資訊管理、程式設計」的主題分類考古題