?關于斐波那契
已知:
?
-
問題背景:一對兔子從第3個月開始每月生一對新兔子,新兔子同樣在第3個月開始繁殖。
-
關鍵觀察:
-
第1個月:1對(初始兔子)。
-
第2個月:1對(未成熟,不生育)。
-
第3個月:1對(初始兔) + 1對(新生的) = 2對。
-
第4個月:初始兔繼續生1對,前第3個月的1對新兔未成熟 → 3對。
-
第n個月:兔子總數 = 上個月已有的兔子數 + 新生的兔子數(即前前個月的兔子數)。
-
-
結論:每個月的兔子數構成斐波那契數列。
?
#include<stdio.h>
int main() {
// 古典問題(兔子生崽):有一對兔子,
// 從出生后第3個月起每個月都生一對兔子,
// 小兔子長到第三個月后每個月又生一對兔子,
// 假如兔子都不死,問每個月的兔子總數為多少?(輸出前40個月即可)long long previous = 1 ,current = 1,next;int month ;printf("first:,%11d\n",previous);printf("second:,%11d\n",current);for(month = 3 ; moth <= 40;month++) {next = previous + current;printf("第%d:,%d\n",month,next);previous =current; //此時相當于【n-2】 current = next;//此時相當于【n-1】//為下一次循環打好基礎 } return 0;
}