这个递归理解起来有点困难,我尝试说下我的理解,刚开始我没读懂题意,老是纠结3个月后生兔子这里,想去考虑3月怎么生,这里只需要理解成1月一个三月就变成两个了,好了现在可以给兔子分种类了,一个月的是小兔子,二个月的是中兔子,三个月的是大兔子

我们尝试着从n个月开始能不能推出n+2个月的兔子;我们假设n个月的兔子从小到大分别有{a,b,c},可以推出n+1个月有小中大依次为{b+c,a,b+c},n+2个月是{a+b+c,b+c,a+b+c},可以看到他的规律就是斐波那契了,我记得很早以前就说兔子繁殖的数量就是斐波那契,好像还有某些植物的叶子等哈哈,所以直接递归就好了。

#include <algorithm>

using namespace std;

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

int main() {
    int N;
    while(cin>>N){
        
         N=count(N);
        
        cout<<N;
    }
}