moea_joint_essay
110年
[資訊] 資訊管理、程式設計
第 一 題
📖 題組:
下列問題,請用遞迴(Recursive)的方式來撰寫:(共 2 題,共 15 分)
下列問題,請用遞迴(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。據此寫出遞迴函式。
小題 (二)
請用遞迴方式撰寫一函式 GCD,輸入為 2 個正整數,其傳回為此 2 個正整數之最大公因數。(7 分)
思路引導 VIP
利用輾轉相除法(歐幾里得演算法),GCD(a, b) = GCD(b, a % b),當 b 為 0 時,a 即為最大公因數。