C語言兔子生兔子問題

2020-07-16 10:04:31
假設一對兔子的成熟期是一個月,即一個月可長成成兔,那麼,如果每對成兔每個月都生一對小兔,一對新生的小兔從第二個月起就開始生兔子,試問從一對兔子開始繁殖,以後每個月會有多少對兔子?

程式程式碼

#include <stdio.h>
int main()
{
    int i,tu1,tu2,tu3,m;
    tu1=1;
    tu2=1;
    printf("請輸入月份數n");
    scanf("%d",&m);
    if(m==1||m==2)
    {
        printf("有一對兔子");
    }
    else if(m>2)
    {
        for(i=3;i<=m;i++)
        {
            tu3=tu1+tu2;
            tu1=tu2;
            tu2=tu3;
        }
        printf("%d 月的兔子數為:%dn",m,tu3);
    }
    return 0;
}

偵錯執行結果

執行程式時,會提示輸入月份,當輸入 12 時,顯示這個月的兔子數目,執行結果如下所示:

請輸入月份數
12
12 月的兔子數為:144

總結

(1) 範例分析
迴圈的巢狀是指在一個迴圈體內又包含了另一個完整的迴圈。迴圈的巢狀執行過程是外迴圈執行一次,內迴圈執行一次,在內迴圈結束後,再執行下一次外迴圈,如此反復,直到外迴圈結束。

(2) 迴圈的巢狀注意事項:
① 迴圈必須完全包含內迴圈,不能交叉;
② 在多重回圈中,各層迴圈的迴圈控制變數不能同名;
③ 在多重回圈中,並列迴圈的迴圈控制變數名可以相同,也可以不同。