题目:
描述
有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问每个月的兔子总数为多少?
输入描述:
输入int型表示month
输出描述:
输出兔子总数int型
解题:
递归思想为 兔子 = 现有的+新出生的。
现有的即为前一个月的,新出生的即前两个月的。注意:第三个月起
#include <iostream>
using namespace std;
// 递归算法
int func(int month)
{
if(month < 3)
{
return 1;
}
else
{
return func(month - 1) + func(month -2);
/*兔子=上个月的+新出生
由于第三个月才能开始生育,新出生的兔子取决于两个月前兔子的数量*/
}
}
int main()
{
int month;
while(cin >> month)
{
cout << func(month) << endl;
}
return 0;
}