有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,请问第一个月出生的兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对?
月份 | 一个月的幼兔 | 两个月的幼兔 | 三个月的大兔 | 总数量 |
---|---|---|---|---|
1 | 1 | 0 | 0 | 1 |
2 | 0 | 1 | 0 | 1 |
3 | 1 | 0 | 1 | 2 |
4 | 1 | 1 | 1 | 3 |
5 | 2 | 1 | 2 | 5 |
… | … | … | … | … |
由上面得出递推式f(n)=f(n-1)+f(n-2);
// 我是头文件
int main() {
int n;
scanf("%d", &n);
int i = 1;
for (; i < 10000; i++) {
if (rabbit(i) < n) {
continue;
}
break;
}
printf(i);
return 0;
}
int rabbit(int n) {
if (n > 2) {
return rabbit(n - 1) + rabbit(n - 2);
}
return 1;
}