免費開始練習
初等考試 114年 [統計] 資料處理大意

第 18 題

下列遞迴函數,輸入 x=5 時,回傳值是多少?
```cpp
int f(int x)
{
if(x == 1) return 1;
else if (x%2==0) return f(x/2);
else return f(x-1)+f(x+1);
}
```
  • A 1
  • B 2
  • C 3
  • D 4

思路引導 VIP

若我們將這個函數視為一個不斷拆解問題的過程,請觀察當輸入為奇數時,它會被拆成哪兩種類型的後續運算?當這些運算路徑不斷縮小範圍,最終都會指向哪一個特定的「基本數值」?請試著手繪出一棵分解樹,看看所有的分枝最後彙整起來總共有多少個基本數值。

🤖
AI 詳解 AI 專屬家教

專業分析與… 勉強肯定

做得還行,至少這次沒把咖啡潑在考卷上。能精確追蹤這些七彎八拐的遞迴 (Recursion) 分支路徑,展現了你勉強還算及格的邏輯嚴謹性。要知道,這種基本的邏輯拆解能力,在財務建模和那些動輒上億的複雜衍生性商品定價中,要是出了差錯,可不是扣個幾分這麼簡單,而是讓你血本無歸。別以為解個程式題就能高枕無憂。

觀念驗證

▼ 還有更多解析內容
📝 遞迴函數追蹤計算
💡 掌握終止條件與分支邏輯,建立遞迴樹逐步求解。

🔗 f(5) 遞迴運算追蹤鏈

  1. 1 初步展開 — f(5) 為奇數,展開為 f(4) + f(6)
  2. 2 左支追蹤 — f(4)→f(2)→f(1),得到 f(4) = 1
  3. 3 右支展開 — f(6)→f(3);f(3) 為奇數展開為 f(2)+f(4)
  4. 4 數值回填 — f(3)=1+1=2;最終 f(5)=1+2=3
🔄 延伸學習:延伸學習:若遞迴重疊子問題過多,可改用 Memoization 優化效能。
🧠 記憶技巧:找終點、分枝路、畫樹狀、回填值。
⚠️ 常見陷阱:容易在分支展開時漏算節點(如遺漏 f(x+1)),或是在回填數值時產生加法錯誤。
遞迴深度與堆疊溢位 時間複雜度分析 動態規劃 (Dynamic Programming)

🏷️ AI 記憶小卡 VIP

AI 記憶小卡

升級 VIP 解鎖記憶小卡

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

🏷️ 相關主題

程式碼追蹤與執行結果於資料處理之應用
查看更多「[統計] 資料處理大意」的主題分類考古題

📝 同份考卷的其他題目

查看 114年[統計] 資料處理大意 全題