民國114年 第2梯次 電腦軟體設計(C++)乙級 學科
第48題
以下為一C 語言撰寫之遞迴函式(Recursive Function) ,假設N≧0,而此函式是用來計算0 至N 之間的所有整數之和,則空格中應填入以下何者?
題目
以下為一C 語言撰寫之遞迴函式(Recursive Function) ,假設N≧0,而此函式是用來計算0 至N 之間的所有整數之和,則空格中應填入以下何者?
- (1) return N+Sum(N-1)
- (2) while(N<> 0)return N+Sum(N+1)
- (3) return(N-1)+Sum(N-1)
- (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 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。