`
qiufeihu
  • 浏览: 34308 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

C语言算法之百元买百鸡

阅读更多

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

代码如下:

#include <stdio.h>
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);
}

运行结果:

公鸡:0 母鸡:25 小鸡:75

公鸡:4 母鸡:18 小鸡:78

公鸡:8 母鸡:11 小鸡:81

公鸡:12 母鸡:4 小鸡:84

分享到:
评论
1 楼 kyzaqlx 2015-06-26  
题主代码搞复杂了

设:公鸡=x 母鸡=y 小鸡=z
则:5 * x + 3 * y + z / 3 = 100 且 x + y + z = 100
得:y = 25 - 7 * x / 4 且 z = 75 + 3 * x / 4
由:y >= 0 且 为整数
得:0 <= x <= 14 且 x % 4 = 0
故:代码如下
public class OJ {
    public static void main(String[] args) {
        for (int cock=0; cock<=12; cock+=4) {
            int hen = 25 - 7 * cock / 4;
            int chick = 75 + 3 * cock / 4;
            System.out.println(cock + " " + hen + " " + chick);
        }
    }
}

相关推荐

    百元买百鸡问题 蛮力法——C语言代码

    在"百元买百鸡问题"中,我们需要找出用100元钱购买鸡(每只3元)、兔子(每只5元)和乌龟(每只8元)的组合,使得鸡、兔、乌龟的总数加起来等于100。我们可以通过遍历所有可能的组合来实现这个目标。 首先,我们...

    c语言百元买百鸡问题.zip

    在C语言编程中,"百元买百鸡"是一个经典的数学问题,也称为"鸡兔同笼"问题的变体。这个问题源于中国古代的算术书《算经》,它旨在通过有限的条件推导出未知数的值。在这个问题中,我们需要用100元钱购买100只鸡,每...

    枚举法解决百元买百鸡PPT学习教案.pptx

    例如,在【百元买百鸡问题】中,我们需要购买价值为100的钱的鸡,鸡分为三种类型:公鸡(值5钱)、母鸡(值3钱)和小鸡(3只值1钱)。通过设立三个变量`x`、`y`、`z`分别表示公鸡、母鸡和小鸡的数量,我们可以构建一...

    枚举法解决百元买百鸡PPT课件.pptx

    以“百元买百鸡”问题为例,这是一个经典的枚举法应用。在这个问题中,鸡分为三种类型:鸡翁(公鸡)、鸡母(母鸡)和鸡雏(小鸡),它们的价格分别为5元、3元和1元。目标是用100元钱买100只鸡。我们设鸡翁、鸡母和...

    C#百钱百鸡算法

    一个有意思的C#算法源码:百钱百鸡算法的实例源代码,公鸡5元一只,母鸡3元一只,小鸡3"+" "+"只一元,用100元买100只鸡,如果公鸡、母鸡和小鸡的总钱数加起来为100,/计算小鸡的个数,最后显示运行结果。

    c语言-穷举算法(百钱买白鸡)、摸球问题.docx

    穷举算法在C语言中的应用 穷举算法是一种常用的算法设计技巧,通过枚举所有可能的候选解,从中找出符合要求的解。穷举算法在C语言中有广泛的应用,以下是两种经典的穷举算法问题的解决方案: 一、百钱买白鸡问题 ...

    C语言程序设计-从问题到程序

    百元买百鸡问题展示了穷举法的应用。通过循环尝试不同的小鸡(x)、公鸡(y)和母鸡(z)的数量,检查它们的总价和数量是否满足条件。初始的解决方案会遍历所有可能的组合,但可以通过优化减少循环次数,例如在确定...

    C语言穷举法例题PPT学习教案.pptx

    在【百元买百鸡问题】中,穷举法被用来解决一个经典的数学问题:用100元钱买100只鸡,鸡可以是公鸡、母鸡和小鸡,它们的价格分别是5元、3元和1元。最初的代码示例展示了三层循环,分别遍历公鸡x、母鸡y和小鸡z的所有...

    c语言学习教案review1-5PPT文档.pptx

    例如,题目中的百元买百鸡问题,可以通过遍历公鸡、母鸡和小鸡的数量来解决。 6. **累加和累乘** - **累加**:使用循环累加变量,如求和,可以通过迭代累加实现。 - **累乘**:类似地,可以计算阶乘,如n!(1*2*....

    c语言经典案例

    实例016 百元买百鸡 19 实例017 打渔晒网问题 20 实例018 判断三角形的类型 22 实例019 直接插入排序 23 实例020 希尔排序 25 实例021 冒泡排序 26 实例022 快速排序 27 实例023 选择排序 28 实例024 归并排序 29 ...

Global site tag (gtag.js) - Google Analytics