程序设计部分 从现实问题到计算机程序 第1关:鸡兔同笼问题

任务描述
本关任务:解决鸡兔同笼的问题。

相关知识
鸡兔同笼问题
一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。
已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物?

问题分析
使用数学方法,我们能很快的得到结果:要求最多,那么鸡的数量要尽可能多;要求最少,则兔子的数量要尽可能多。

那如何转化为计算机程序呢?我们可以一步一步来。

首先要读取输入的脚的总数,我们可以声明一个int型的变量:

int a; //脚的总数
cin >> a; //读取输入
然后就可以根据a的取值来分情况讨论了。

如果输入的数据为奇数,则这个数据是错误的数据,那我们就输出一句数据错误的提示。
代码如下:

if(a % 2 == 1)
{
    cout << "数据错误" << endl;
}
数据正确的情况下,我们可以进一步看看a是否是4的倍数,如果是的,则最多动物数量就是a / 2,最少是a / 4。
代码如下:

else if(a % 4 == 0)
{
    cout << a / 2 << endl; //输出最多的数量
    cout << a / 4 << endl; //输出最少的数量
}
如果不是4的倍数,那么除以4的余数只能是2,所以最多的动物数量仍为a / 2,而最少的动物数量是a / 4 + 1(即n只兔子和1只鸡,这里利用了整数除法的特点)。
代码如下:

else
{
    cout << a / 2 << endl;
    cout << a / 4 + 1 << endl;
}
将这几个代码片段组合起来,整个程序就完成了。

编程要求
请将上述的代码片段组合成一个完整程序,写在右侧编辑器的指定位置。

测试说明
平台会对你编写的代码进行测试:

测试输入:
5
预期输出:
数据错误

测试输入:
6
预期输出:
3
2

参考代码:

#include <iostream>
using namespace std;

int main()
{
	/**********   Begin   **********/
    int a; // 脚的总数
    cin >> a; // 读取输入

    if (a % 2 == 1) {
        cout << "数据错误" << endl; // 如果是奇数,输出错误提示
    } else if (a % 4 == 0) {
        cout << a / 2 << endl; // 输出最多的数量
        cout << a / 4 << endl; // 输出最少的数量
    } else {
        cout << a / 2 << endl; // 输出最多的数量
        cout << a / 4 + 1 << endl; // 输出最少的数量
    }
    return 0;
	//将关卡说明中的代码组合后放到此处

	/**********   End   **********/
}

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值