民國114年 第2梯次 電腦軟體設計(JAVA)乙級 學科

第41題

以下為一C 語言撰寫之遞迴函式(Recursive Function) ,假設N≧0,而此函式是用來計算0 至N 之間的所有整數之和,則空格中應填入以下何者?

題目

以下為一C 語言撰寫之遞迴函式(Recursive Function) ,假設N≧0,而此函式是用來計算0 至N 之間的所有整數之和,則空格中應填入以下何者?

  1. (1) return(N-1)+Sum(N-1)
  2. (2) while(N<> 0)return N+Sum(N+1)
  3. (3) return N+Sum(N-1)
  4. (4) return(N-1)+Sum(N)

官方答案

(3) return N+Sum(N-1)

解析

遞迴必須同時具備終止條件與縮小問題規模的遞迴呼叫。計算 0 到 N 的整數和可表示為 Sum(N) = N + Sum(N-1),並在 N 等於 0 時回傳 0 作為終止條件,因此空格應填 return N+Sum(N-1)。選項 1 的 (N-1)+Sum(N-1) 會漏掉 N 且重複計算;選項 4 以相同的 N 呼叫自己,參數沒有縮小,會造成無窮遞迴;選項 2 混用 while 與 return,且 N+Sum(N+1) 使參數遞增,同樣無法收斂。

AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。

官方資料