問題描述:
一對兔子,從出生後第3個月起每個月都生一對兔子。小兔子長到第3個月後每個月又生一對兔子。假如兔子都不死,請問第1個月出生的一對兔子,第n個月有多少隻兔子?
分析:第一個月 一對兔子
第二個月 一對兔子
第三個月 上個月的一對兔子+第一個月兔子新出生的一對兔子=2對兔子
...........
第n個月F(n)= 上個月(n-1月)的兔子數F(n-1)+上上個月(n-2月)新出生的兔子這個月又生出的兔子數F(n-2)
代碼部分:
#include <iostream>
using namespace std;
int main()
{
int n,preNum = 1,temp,curNum = 1;
cin >> n;
for(int i = 3; i <= n; i ++){
temp = curNum;
curNum = curNum + preNum;
preNum = temp;
}
cout<<curNum<<endl;
return 0;
}