一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对?
输入在一行中给出一个不超过10000的正整数N。
在一行中输出兔子总数达到N最少需要的月数。
30
结尾无空行
9
结尾无空行
#include<stdio.h> int main() { int lunar=1, n, intermediary, small_1=1, small_2=0, big=0, sum; */intermediary中文“中介”,以此作为中间变量存储被改变了的数据 small_1表示出生一个月的小兔子(真好吃bushi) small_2表示出生两个月的小兔子 big表示已经成熟的大兔子*/ scanf("%d", &n); sum=small_1+small_2+big; while(sum<n){ intermediary=small_1; small_1=big=small_2+big; small_2=intermediary; sum=small_1+small_2+big; lunar++; } printf("%d", lunar); return 0; }
本题难点在于找到递归关系(或许?)