免費開始練習
moea_joint_essay 110年 [資訊] 資訊管理、程式設計

第 一 題

📖 題組:
下列問題,請用遞迴(Recursive)的方式來撰寫:(共 2 題,共 15 分)
📝 此題為申論題,共 2 小題

小題 (一)

實驗室培養某細胞,此細胞區分為成年與幼年細胞。每個成年細胞於 1 個月後會生出 2 個幼年細胞,幼年細胞於 1 個月後會變為成年細胞。請用遞迴方式撰寫一函式 CellNumber,輸入為 N 個月後,其傳回為 N 個月後細胞的總數。(8 分)

思路引導 VIP

推導細胞成長遞迴關係。假設第 N 個月總數為 T(N),成年為 A(N),幼年為 Y(N)。A(N) = A(N-1) + Y(N-1),Y(N) = 2A(N-1)。可知 T(N) = T(N-1) + 2T(N-2)。假設起始(N=0)有 1 個成年細胞,可得 T(0)=1, T(1)=3。據此寫出遞迴函式。

🤖
AI 詳解
AI 專屬家教

此問題可由推導得知數列規則: 假設一開始 (N=0) 有 1 個成年細胞。

  • 第0個月:成年 1,幼年 0,總數 1。

小題 (二)

請用遞迴方式撰寫一函式 GCD,輸入為 2 個正整數,其傳回為此 2 個正整數之最大公因數。(7 分)

思路引導 VIP

利用輾轉相除法(歐幾里得演算法),GCD(a, b) = GCD(b, a % b),當 b 為 0 時,a 即為最大公因數。

🤖
AI 詳解
AI 專屬家教

利用輾轉相除法(Euclidean algorithm)實作之遞迴函式 (C語言) 如下:

int GCD(int a, int b) {

🏷️ 相關主題

物件導向程式設計與系統分析核心概念
查看更多「[資訊] 資訊管理、程式設計」的主題分類考古題