c语言买100只鸡,C语言经典问题--百钱买百鸡问题

原标题:C语言经典问题--百钱买百鸡问题

大家好!今天我们来介绍C语言中一个著名的问题:百钱买百鸡的问题。

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

其大意就是:公鸡一只五元钱,母鸡一只三元钱,小鸡三个一元钱。问:100元买了100只鸡,其中公鸡、母鸡和小鸡各有多少只?

问题分析:首先我们如果对此问题进行数学求解的话,我们能够看出每一种鸡的数量不是一个定数。

根据题意设公鸡、母鸡和雏鸡分别为 cock、hen 和 chick,如果 100 元全买公鸡,那么最多能买 20 只,所以 cock 的范围是大于等于 0 且小于等于 20;如果全买母鸡,那么最多能买 33 只,所以 hen 的范围是大于等于 0 且小于等于 33;如果 100 元钱全买小鸡,那么最多能买 99 只(根据题意小鸡的数量应小于 100 且是 3 的倍数)。

在确定了各种鸡的范围后进行穷举并判断,判断的条件有以下 3 点:

(1) 所买的 3 种鸡的钱数总和为 100。

(2) 所买的 3 种鸡的数量之和为 100。

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

代码如下:

/*

中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱买百鸡问题”,

鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?

*/

#include

int 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);

return 0;

}

c4b456006a32b7425f808492e9f7ace5.png

好了,今天的讲述就到这里了。返回搜狐,查看更多

责任编辑:

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值