題組內容

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

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

詳解 (共 10 筆)

我94鴨嘴獸
我94鴨嘴獸
詳解 #5237615
2021/11/29
假設x表示成年細胞,y表示幼年細胞f(n...

(共 387 字,隱藏中)
前往觀看
exam0526
exam0526
詳解 #5207810
2021/11/13
修正後: 畫圖分析: 這...





(共 183 字,隱藏中)
前往觀看
高普考小白
高普考小白
詳解 #5804613
2023/05/09

思考邏輯:

x:成年細胞 y:幼年細胞

f(0) = x                                     = 1

過一個月後↓↓上個月的成年細胞的迸出兩個幼年細胞,上個月的幼年細胞變成成年細胞

f(1) = x + 2y                                = 3

過一個月後↓↓上個月的成年細胞的迸出兩個幼年細胞,上個月的幼年細胞變成成年細胞

f(2) = x + 2y + 2x   = 3x + 2y               = 5

過一個月後↓↓上個月的成年細胞的迸出兩個幼年細胞,上個月的幼年細胞變成成年細胞

f(3) = 3x + 6y + 2x  = 5x + 6y               = 11

過一個月後↓↓上個月的成年細胞的迸出兩個幼年細胞,上個月的幼年細胞變成成年細胞

f(4) = 5x + 10y + 6x = 11x + 10y             = 21

… 以此類推

public static int CellNumber(int n_month){

    if(n_month==0)

         return 1;

    else if(n_month==1);

        return 3;

    else

         return CellNumber(n_month-1) +  2*CellNumber(n_month-2);

       //      上月的沒迸,只是變成年 +       前月的有迸兩個幼年

}

bmpss92295
bmpss92295
詳解 #5603598
2022/09/02
使用PYTHON撰寫 提供input

(共 21 字,隱藏中)
前往觀看
wang wang
wang wang
詳解 #5637477
2022/10/17
第二個月 開始,會生出2個幼年細胞 F(...
(共 439 字,隱藏中)
前往觀看
hhh
hhh
詳解 #5583513
2022/08/08


(共 1 字,隱藏中)
前往觀看
Lin Jin
Lin Jin
詳解 #6119731
2024/06/04


(共 1 字,隱藏中)
前往觀看
brucechang1009
brucechang1009
詳解 #5641746
2022/10/22
int CellNumber (int ...
(共 226 字,隱藏中)
前往觀看
Grace
Grace
詳解 #5930297
2023/09/13

int CellNumber(int months, int adult, pre_baby){
    int baby = adult*2; 
    int adult = pre_baby; //前個月baby長大
    int sum = adult + baby; //當月成長
    if (month == 1){
        return sum;
    }
    CellsNumber(months-1, adult, baby)
}

polar33794
polar33794
詳解 #5977663
2023/12/02

int CellNumber(int mon,int Cn_1,int An_1)
{
    int Cn=0; //第N個月的幼體細胞數量
    int An=0;//第N個月的成體細胞數量
    if(mon>0)//當月份mon比0大 ,就要計算n月的幼與成體數量
    {
        Cn=An_1*2; //每一個本(n-1)月的成體數量在下一月(n)生出兩個幼體
        An=Cn_1+An_1;//每一個本(n-1)月的幼體數量在下一月(n)長成1個幼體,再加上本月(n-1)原有的成體數量,就是下一個(n)月的成體數量
        --mon;
        return CellNumber(mon,Cn,An);
    }
    else
       return (fn_1+Fn_1);//如果上一個月就是經過了第mon個月(已經計算完了mon==0),就將上一個月的幼體與成體數量加起來,傳回去
}

私人筆記 (共 1 筆)

我94鴨嘴獸
我94鴨嘴獸
私人筆記 #3750110
2021/11/29
假設x表示成年細胞,y表示幼年細胞f(n...

(共 385 字,隱藏中)
前往觀看