題目:如果1對兔子每月能生1對小兔子,而每對小兔在它出生后的第3個月就可以生1對小兔子,如果從1對初生的小兔子開始,1年后能繁殖多少兔子?
思路:其實這個問題我們可以將兔子划分為"1月大的兔子","2月大的兔子","3月大的兔子"。 ① 初始時: 一對1月大小兔子,總數為1對。 ② 第一個月: 1月大的小兔子變成2月大的兔子,總數還是1對。 ③ 第二個月: 2月大的小兔子變成3月大的兔子,繁殖了一對小兔子,總數為2對。 ④ 第三個月: 3月大的兔子tmd有生了一對小兔子,上個月1月大的小兔子變成了2月大的兔子,總數為3對。 ...... ...... F0=1 F1=1 F2=F0+F1 F3=F1+F2 ...... Fn=Fn-2+Fn-1
C++ 實現
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
int month[12];
month[0] = 1;
month[1] = 1;
for(int i=2;i<12;i++){
month[i] = month[i-1] + month[i-2];
}
for(int i=0;i<12;i++){
cout<<"在第"<<i<<"個月兔子有"<<setw(4)<<month[i]<<setw(4)<<"只"<<endl;
}
return 0;
}
運行結果
在第0個月兔子有 1 只
在第1個月兔子有 1 只
在第2個月兔子有 2 只
在第3個月兔子有 3 只
在第4個月兔子有 5 只
在第5個月兔子有 8 只
在第6個月兔子有 13 只
在第7個月兔子有 21 只
在第8個月兔子有 34 只
在第9個月兔子有 55 只
在第10個月兔子有 89 只
在第11個月兔子有 144 只
