c语言200例 008 百钱买百鸡

文章介绍了中国古代数学问题‘百钱买百鸡’,其中涉及到不同类型的鸡(公鸡、母鸡和小鸡)的价格比例。通过编程方法,使用C语言的for循环嵌套和条件判断,找出所有可能的组合,使得购买的鸡总数为100只且总价格等于100钱。代码示例展示了具体的实现过程。
摘要由CSDN通过智能技术生成

问题:我国古代数学家张丘建在《算经》一书中曾提出过著名的“百钱买百鸡”问题,该问题叙述如下:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?

这个题的意思也就是,一只公鸡五钱,一只母鸡三钱,三只小鸡一钱,一百钱正好能买一百只鸡,求各种鸡的数量


核心思路:1.如果全买公鸡,最多可以买20只。如果全买母鸡,最多可以买33只。如果全部买小鸡,最多可以买99只,但必须要注意的是,小鸡买的时候,至少应该要买三只

                   2.利用for循环的嵌套来穷举

                   3.最后让if语句进行条件的判断

运行结果如下图所示

代码如下

#include<stdio.h>
#include<stdlib.h>
int main()
{
	int cock, hen, chick;
	for (cock = 0; cock <= 20; cock++)
		for (hen = 0; hen <= 33; hen++)
			for (chick = 3; chick <= 99; chick++)  //小鸡从3开始
				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);
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值