问题描述:
一对兔子,从出生后第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;
}