一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对?
输入格式:
输入在一行中给出一个不超过10000的正整数N。
输出格式:
在一行中输出兔子总数达到N最少需要的月数。
输入样例:
30
输出样例:
9
第n个月兔子数,等于前一个月兔子数+前两个月兔子数。
#include <iostream> #include <algorithm> #include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <iomanip> using namespace std; int main() { int n,m = 0; int s[3] = {1}; cin>>n; while(s[m % 3] < n) { m ++; s[m % 3] = s[(m - 1) % 3] + s[(m + 1) % 3]; } cout<<m + 1; }