计算母牛生小牛的问题,代码哪里需要改进?

问题描述:

Description

有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?

Input

输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。
n=0表示输入数据的结束,不做处理。

Output

对于每个测试实例,输出在第n年的时候母牛的数量。
每个输出占一行。

Sample Input

2
4
5
0
Sample Output

2
4
6


#include<stdio.h>
int main()
{
    int n;
    int sum = 1;
    while (scanf("%d",&n)!=EOF)
    {
        if (n==0)
        {
            continue;
        }
        if (n<4)
        {
            for (int i = 0; i < n; i++)
            {
                sum++;
            }
        }
        else
        {
            sum = 4;
            for (int i = 1; i <= n-3; i++)
            {
                sum += i;
            }
        }
        printf("%d\n", sum);
    }
    return 0;
}

题主可以参考参考我的代码
🙌

int main()
{
    //                    .            .            .
    //年数:1      2     3      4        5      6   7      8       9    10
    //头数;1      1      1      2        3      4      6      9      13    19
    //       num1 num2  num3  num4  
    //               num1   num2  num3  num4
    //其实规律就是:相隔两年的牛数相加等于后一年的牛数
    //num1年的牛数+num3年的牛数==num4年的牛数
    //将num1,num2,num3,num4当成一体的,每年往后一起移动一个位置
    int num1 = 1, num2 = 1, num3 = 1, num4;//牛数
    int n;//年数
    printf("请输入第几年:\n");
    scanf("%d", &n);
    if (n <= 3)
        printf("只有一头牛!\n");
    else
        for (int i = 1; i <= n-3; i++)//前三年不算,所以减去才对
        {
            num4 = num1 + num3;
            num1 = num2;
            num2 = num3;
            num3 = num4;
        }
    printf("在第%d年的时候有牛%d头", n, num4);
    return 0;
}

望采纳😘

1 2 3 4 6 8