C语言计算逻辑运算,仓鼠实现代码

(3)假设现在是2021年11月15日,俊杰养了一只成年母仓鼠(可生育), 在每年年初(即每年1月1日)时它会产下一只小的母仓鼠。同时每只小母仓鼠从第4年的年初开始(即每年1月1日),也会产下一只小母仓鼠。请用C语言编程帮助俊杰进行统计,要求实现在第n年的时候,统计出他家中总共有多少只母仓鼠?

要求:输入一个整数n,且n的取值范围为0 < n < 51, 正确输出从2022 .年1月1日开始(含该年份日期),第n年家中的母仓鼠数量m。

基本项:能使用伪代码或自然语言等形式对算法逻辑进行正确描述,并找.出数列中的规律;根据总结的规律编写C程序,确保整代码执行无误且能够正确获得数据输出;

加分项:以最精简的代码实现与基本得分项相同的功能,即最大程度地优化代码。

0 1
1 2
2 3
3 4
4 5+1 = 6
5 6+2+1=9
代码如下:

#include <stdio.h>
int fun(int n)
{
    if(n==0)
        return 1;
    else if(n>=1 && n<=3)
        return n+1;
    else
        return fun(n-1)+fun(n-4)+1;
}
int main()
{
    int n;
    scanf("%d",&n);
    printf("%d",fun(n));
    return 0;
}


#include<stdio.h>
#include<stdlib.h>
int fab(int n)
{
    if (n == 0 || n == 1 || n == 2 || n == 3)
        return 1+n;
    else
        return fab(n - 1) + fab(n - 4)+1;//当年数超过4年时,当年的数量是前一年的数量加上四年前的数量
}
int main()
{
    int n=0;
 scanf("%d",&n);
    printf("%d",fab(n));
    return 0;
}