牛客算法-兔子繁衍
题目描述:
有一对兔子,从出生后的第五个月起每月生出一对小兔子(即满4月就开始生小兔),小兔子也会出生从第五个月起每月生一对小免子。 假如兔子不会死,第n个月时,免群有多少对兔子。
输入描述:
第n月(n为自然数,n<101)
输出描述:
第n个月时,兔子的对数(免群的兔子有多少对兔子)。
思路:一个比较简单的斐波那契数列,适当的改变兔子繁衍的速度
#include <iostream>
using namespace std;
int main()
{
int month=0; //月份数
cout<<"请输入月数:";
cin>>month;
if(month<5){
cout<<1<<endl;exit(0); //当月份小于5直接返回1对
}
int rabbitNumber[month]={1,1,1,1}; //设置初始的辅助数组
for(int index=4;index<month;index++){
rabbitNumber[index]=rabbitNumber[index-1]+rabbitNumber[index-4]; //自底向上计算兔子对数
}
printf("%lld",rabbitNumber[month-1]);
}