有一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假设所有兔子都不死,问第1个月出生的一队兔子,至少需要繁衍到第几个月时,兔子的总数才可以达到n对?
例 输入 30 输出 9
解析 兔子的繁衍其实是一个斐波那契数列问题
#include <iostream>
using namespace std;
int main()
{
double f1 = 1, f2 = 1;
int n,month=2;
cin >> n;
if (n < 2)
{
cout << "1" << endl;
}
if (n >= 2)
{
do
{
f1 = f1 + f2;
f2 = f1 + f2;
month += 2;
}while (n > f1 && n > f2);
if (f1 >= n)
{
cout << month-1 << endl;
}
else if (f1<n && n<=f2)
{
cout << month << endl;
}
}
return 0;
}