/*
第一个月 只有一只             --->1

第二个月 只有一只             --->1

第三个月 原先的一只生出一只 共2只

第四个月 最开始的一只又生出一只 共3只

第五个月 第一只又生一只,第二只到第三月 生一只,共5只

第六个月 第一只又生一对,第二只生一只,第三只生一只,共8只

可以发现f(n) = f(n-1)+f(n-2)
即斐波那契
*/

int f(int n)
{
    if(n == 1 || n == 2){
            return 1;
        }
        return  f(n-1)+f(n-2);
}

int main() {
    int n;
    scanf("%d",&n);
    int count =0;
    count=f(n);
    printf("%d\n",count);
    
    
}

分析:

第一个月,未满三个月不生

1

共1只

第二个月,未满三个月不生

1

共1只

第三个月,第一只满三个月生一只

1+1

共2只

第四个月,第一只满三个月在生一只

1+1+1

共3只

第五个月,第一只再生一只

但是原第一只生第一只满三个月了会生一只

原1+1+1+1

第一只的第一个孩子 +1

共5只

第六个月,第一只再生一只

但是原第一只生第一只在生一只

此时原第一只的第二个兔子也满三个月了会生一只

原:1+1+1+1+1

原1:1+1

原2:1

共8只

..............

...............

...........

以此类推发现f(n)=f(n-1)+f(n-2)的斐波那契数列

f(n)=f(n-1)+f(n-2)

仔细分析不难发现规律