cracker_03 2021-09-04 11:56 采纳率: 82.6%
浏览 92
已结题

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

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;
}
  • 写回答

2条回答 默认 最新

  • 多低调 2021-09-04 12:35
    关注

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

    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条)

报告相同问题?

问题事件

  • 系统已结题 9月12日
  • 已采纳回答 9月4日
  • 修改了问题 9月4日
  • 创建了问题 9月4日

悬赏问题

  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用