民國114年 初等考試 統計 資料處理大意
第18題
下列遞迴函數,輸入x=5 時,回傳值是多少?int f(int x){if(x == 1) return 1;else if (x%2==0) return f…
題目
下列遞迴函數,輸入x=5 時,回傳值是多少?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
官方答案
- 答案:C. 3
解析
依遞迴定義逐步展開:x=5 為奇數,回傳 f(4)+f(6)。f(4) 為偶數,回傳 f(2),f(2) 再回傳 f(1)=1,故 f(4)=1。f(6) 為偶數,回傳 f(3);f(3) 為奇數,回傳 f(2)+f(4)=1+1=2,故 f(6)=2。兩者相加得 3。此題關鍵在於偶數時直接除以 2 縮小,奇數時才拆成前後兩項,計算時需由最底層的終止條件 x==1 往上回推,避免重複展開造成錯誤。答案為 3,即選項 C。
AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。
官方資料
答案以考選部公告之測驗式試題標準答案 PDF 為準。