C语言实现穷举法-百钱买百鸡

点击蓝字

b8eb87a296155292c46c76891a0535ba.png

关注我们

因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享

来源于网络,侵删

01

实例描述

      中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱买百鸡问题”,鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?运行结果如图所示。

a45b9f2ea39ff43a1fa92487c4b20f5a.png

百元买百鸡

02

代码实现

1.在Visual Studio 2017中选择“文件”→“新建”→ “项目”。

2.在跳出的界面选择“Windows 桌面”→“Windows桌面向导” → “输入项目名称(输入015)”→“选择保存项目路径,,单击“确定”按钮,创建一个工程步骤完成。

3.在创建的工程中,在“源文件”右键,选择“添加” →“新建项” →“C++文件(.cpp)”,在下面的位置输入文件名,单击“添加”,完成源文件的的添加。

4.在代码编辑界面中,开始编写本实例代码。

5.引用头文件,代码如下:

#include <stdio.h>

6.使用for语句对三种鸡的数量在事先确定好的范围内进行穷举并判断,对满足条件的将三种鸡的数量按指定格式输出,否则进行下次循环。

7.程序主要代码如下:

void main()

{

    int cock, hen, chick;                                        /*定义变量为基本整型*/

    for (cock = 0; cock <= 20; cock++)                            /*公鸡范围在0到20之间*/

        for (hen = 0; hen <= 33; hen++)                            /*母鸡范围在0到33之间*/

            for (chick = 3; chick <= 99; chick++)                    /*小鸡范围在3到99之间*/

                if (5 * cock + 3 * hen + chick / 3 == 100)             /*判断钱数是否等于100*/

                    if (cock + hen + chick == 100)                 /*判断购买的鸡数是否等于100*/

                        if (chick % 3 == 0)                     /*判断小鸡数是否能被3整除*/

                            printf("公鸡:%d 母鸡:%d 小鸡:%d\n", cock, hen, chick);

}

03

技术要点

      根据题意设公鸡、母鸡和雏鸡分别为cock、hen和chick,如果100元全买公鸡那么最多能买20只,所以cock的范围是大于等于0小于等于20,如果全买母鸡那么最多能买33只,所以hen的范围是大于等于零小于等于33,如果100元钱全买小鸡那么根据题意最多能买99只(根据题意小鸡的数量应小于100且是3的倍数)。在确定了各种鸡的范围后进行穷举并判断,判断的条件有以下3点:

○所买的三种鸡的钱数总和为100。

○ 所买的三种鸡的数量之和为100。

○所买的小鸡数必须是3的倍数。

 
 
 
 

a13411a0a58a8e1bdd6610d176c4387d.gif

如果你年满18周岁以上,又觉得学【C语言】太难?想尝试其他编程语言,那么我推荐你学Python,现有价值499元Python零基础课程限时免费领取,限10个名额!
▲扫描二维码-免费领取

推荐阅读

相见恨晚!C语言的驱动法编程详细解析(超多代码案例)

深入理解C语言中的malloc,malloc() 与 free() 原理图解

C语言和C++的区别和联系,大多数人都说错了

C语言进阶之 回调函数详解

戳“阅读原文”我们一起进步

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值