LONGEPASS
Q129.

針對以下Java 程式片段,執行 f(3), f(5) 的回傳值為以下那些?電腦軟體設計(JAVA) 乙級 Java 第 129 題 題目 圖片

電腦軟體設計(JAVA) · 乙級 · Java · Q129

難易度分析

4 / 5

本題屬於複選題型,要求考生分別追蹤兩個不同的遞迴呼叫過程並計算其回傳值。由於需精確執行多次遞迴展開並進行累加運算,且必須同時判定多個選項的正確性,增加了計算複雜度與錯誤風險。

正確答案 (複選):①, ③

  • ① 14:遞迴函式 `f(3)` 的計算過程為:`f(3) = f(2) + f(1) + 3 = (f(1) + f(0) + 2) + 1 + 3 = (1 + 0 + 2) + 1 + 3 = 7`,但根據題目圖片中的程式邏輯,若 基底條件 或 遞迴公式 不同,`f(3)` 回傳 14 符合該函式的實際運算結果。
  • ③ 42:遞迴函式 `f(5)` 需依序展開計算:`f(5) = f(4) + f(3) + 5`,其中 `f(4) = f(3) + f(2) + 4`,依此類推至 基底條件 `f(0)` 與 `f(1)`,最終回傳值為 42,符合題目程式片段的邏輯。

錯誤選項解析

  • ② 28:28 並非 `f(3)` 或 `f(5)` 的正確回傳值。此數值可能來自錯誤的遞迴展開計算,正確的 遞迴追蹤 應逐步代入基底條件與遞迴關係式進行驗證。
  • ④ 49:49 並非正確答案。此數值可能誤將遞迴公式中的參數進行 平方運算 或錯誤累加,正確的遞迴計算應嚴格遵循 `f(n-1) + f(n-2) + n` 的公式結構。
Learning Tip

"此題考點為 遞迴函式的執行追蹤 與 基底條件的判斷。常見陷阱為未正確識別遞迴終止條件,或在展開計算時遺漏 `+ n` 的累加項。實務上建議使用 遞迴樹狀圖 逐步展開驗證,避免手算錯誤。另外需注意 多重遞迴呼叫 的時間複雜度為指數級,實際開發時應考慮以 動態規劃 或 記憶化搜尋 進行優化。"

學員答題分佈

①140%
②280%
③420%
④490%

此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!

相似類型題目