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

第48題

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

題目

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

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

官方答案

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

解析

0 至 N 的整數和可表示為 Sum(N)=N+Sum(N-1),並以 N=0 回傳 0 作為終止條件,故應填 return N+Sum(N-1)。選項 2 的 while(N<>0) 語法不正確,且 Sum(N+1) 會使參數增大,無法收斂;選項 3 為 (N-1)+Sum(N-1),會重複累加且漏掉 N;選項 4 的 Sum(N) 會造成無限遞迴。

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

官方資料