def CellNumber(N, adult_cells=1, young_cells=0):
if N == 0:
return adult_cells + young_cells
else:
new_adult_cells = adult_cells + young_cells
new_young_cells = adult_cells * 2
return CellNumber(N - 1, new_adult_cells, new_young_cells)
# 測試範例
months = 5 # 例如,計算5個月後的細胞總數
total_cells = CellNumber(months)
print(f"{months}個月後的細胞總數: {total_cells}")
解釋
基礎情況:
當 N == 0 時,函式返回 adult_cells + young_cells,這是初始狀態下的總細胞數量。
遞迴步驟:
計算新一個月的成年細胞數量 new_adult_cells,等於上一個月的成年細胞數量加上幼年細胞數量。
計算新一個月的幼年細胞數量 new_young_cells,等於上一個月的成年細胞數量乘以2。
用 N-1 來調用遞迴函式 CellNumber,並將 new_adult_cells 和 new_young_cells 作為新參數傳入。
這樣,遞迴函式將會計算經過 N 個月後的總細胞數量。