免費開始練習
高考申論題 114年 [資訊處理] 資料結構

第 四 題

四、根據下列的虛擬碼,若 n = 21 則傳回的答案為何?請說明。其中 floor()為數學上的地板函數(floor function)。(20 分)

function splitSum(n: integer) returns integer
if n <= 1 then
return 1
a ← floor(n / 2)
b ← floor(n / 3)
return splitSum(a) + splitSum(b)
📝 此題為申論題

思路引導 VIP

遇到遞迴演算法追蹤題,應先找出「終止條件」與「遞迴關係式」。建議採用樹狀展開或由下而上(Bottom-up)的推導方式,將計算過的小問題結果記錄下來以避免重複計算,即可順利推導出最終結果。

🤖
AI 詳解 AI 專屬家教

【解題思路】利用遞迴關係展開與由下而上(Bottom-Up)的計算方式,逐步分解問題並代入基準條件(Base Case)求值。 【詳解】 已知:

▼ 還有更多解析內容
📝 遞迴函式追蹤計算
💡 掌握遞迴基準條件與子問題展開,並系統性由下而上求值。

🔗 遞迴求解四步驟

  1. 1 標記基準點 — 找出 n <= 1 時函數傳回 1 的終止條件
  2. 2 拆解大問題 — 依公式將 S(21) 分解為 S(10) 與 S(7)
  3. 3 由底層遞算 — 由 S(0) 開始算出所有必要子問題並列表
  4. 4 回代得結果 — 將計算出的子項數值加總得出最後答案
🔄 延伸學習:延伸學習:動態規劃中利用空間換取時間的 Memoization 優化技術
🧠 記憶技巧:找底標、拆子題、列清單、回代算
⚠️ 常見陷阱:最常在執行 Floor 函數除法時不慎誤進位,或在多層遞迴分支中遺漏中間子問題的數值。
動態規劃 (Dynamic Programming) 分治演算法 遞迴樹 (Recursion Tree) 分析

🏷️ AI 記憶小卡 VIP

AI 記憶小卡

升級 VIP 解鎖記憶小卡

考前複習神器,一眼掌握重點

📝 同份考卷的其他題目

查看 114年[資訊處理] 資料結構 全題