Q13.
針對以下Java 程式片段,f(8,3)輸出為何?
電腦軟體設計(JAVA) · 乙級 · Java · Q13
難易度分析
3 / 5
本題要求追蹤遞迴函數的執行流程,需正確分析遞迴終止條件以及每次遞迴時的數值變化,屬於典型的程式碼執行追蹤分析題。
正確答案:②5
② 5:此遞迴函數計算 x 與 y 的差值。f(8,3) 會逐次遞迴:f(8,3)→f(7,3)+1→f(6,3)+2→f(5,3)+3→f(4,3)+4→f(3,3)+5,當 x=y=3 時回傳 0,最終結果為 8-3=5。
錯誤選項解析
- ① 3:此為 遞迴終止條件 的返回值,當 x 等於 y 時才會回傳 0,而非 f(8,3) 的計算結果。
- ③ 8:此為輸入參數 x 的原始值,並非遞迴計算後的結果。
- ④ 11:此為 x+y 的總和 (8+3=11),但此函數執行的是 遞減運算 而非加法運算。
Learning Tip
"此題考 遞迴函數的追蹤執行。關鍵在於識別遞迴的 終止條件 (x==y 回傳 0) 與 遞迴步驟 (每次 x-1 並累加 1),本質上計算的是兩數的 絕對差值。常考陷阱為混淆遞迴方向(遞增或遞減)與誤判終止條件的觸發時機。"
學員答題分佈
①30%
②50%
③80%
④110%
此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!