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 ghpython这里总是报错而且rhino视图窗口内不显示怎么办
  • ¥15 布尔运算推导,请证明
  • ¥15 有没有人会打学生成绩管理系统呀
  • ¥15 在使用Fiddler和夜神模拟器抓包的时候一直出现443该怎么办啊QAQ搜了好几个笔记都没有解决
  • ¥15 3x7的二维数组A、B、C,A中的任意1个数组元素与B的任意1个数组元素、同时又与C的任意1个数组元素比较,把不同位置出现相同数的比较称为无意义,反之称为有意义,把有意义的比较打印输出。
  • ¥20 预测模型怎么处理原始数据(随机森林)
  • ¥20 请问discuz3.5如何实现插入ckplayer全能播放器功能呢?
  • ¥15 thingsboard代码编译出错误
  • ¥15 博途v18仿真报错怎么解决
  • ¥15 欧姆龙plc枕式包装机 ST编程