題組內容

四、下列問題,請用遞迴(Recursive)的方式來撰寫:

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

詳解 (共 4 筆)

KUAN-JEN CHEN
KUAN-JEN CHEN
詳解 #5318461
2022/01/23
int cellNumber(int N...
(共 140 字,隱藏中)
前往觀看
den
den
詳解 #5640769
2022/10/21
def cell(N):    if N...
(共 211 字,隱藏中)
前往觀看
Angus
Angus
詳解 #5947173
2023/10/15
def CellNumber(N):  ...
(共 204 字,隱藏中)
前往觀看
hchungw
hchungw
詳解 #6128283
2024/06/12
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 個月後的總細胞數量。

私人筆記 (共 1 筆)

Otis (Otis)
Otis (Otis)
私人筆記 #5446149
2023/09/12
一、說明1. 每個成年細胞於 1 個月後...
(共 743 字,隱藏中)
前往觀看