问题描述:
每只母鸡 3 元,每只公鸡 4 元,每只小鸡 0.5 元,如果花100 元钱买 100 只鸡,请问有哪些可能?说明:每种鸡的数量都可以为零。
今天在java编程那些事上看到了这个问题,网上已经有很多版本的答案了,三重循环实现的,二重循环实现的,一重循环实现的,今天我尝试用1重循环实现了,大家看看我的方法,欢迎拍砖。
由题意 假设母鸡买m只,公鸡买g只,小鸡买x只,那么0<=m<=33,0<=g<=25,0<=x<=200,相信大家这个应该都知道。
另外 m+g+x=100 (1)
3m+4g+0.5x=100 (2)
要实现一重循环首先要消去一个变量,先选择消去m(即母鸡数),那么(2)-3*(1)得到: 2.5x-g=200
那么:
公鸡(g)的数量:g=2.5x-200,
母鸡(m)的数量:m=100-x-g=100-x-(2.5x-200)=300-3.5x
由于0<=m<=33,0<=g<=25,0<=x<=200
即小鸡的数量(x)要同时满足:
0<=(300-3.5x)<=33 (1)
0<=(2.5x-200)<=25 (2)
0<=x<=200 (3)
得到80<=x<=700/6
那么就可以利用一重循环实现了,请看下面代码:
/*
* 百元百鸡问题
* 80,600/7这些数字的由来请看上面的分析
*/
int m = 0, g = 0; //m是母鸡的数量,g是公鸡的数量,x是小鸡的数量
for(int x=80; x<=600/7; x++) {
m = (int)(300 - 3.5*x);
g = (int)(2.5*x - 200);
if(3*m + 4*g + 0.5*x == 100) {
System.out.println("母鸡:" + m + ",公鸡:" + g + ",小鸡:" + x);
}
}
执行结果:
母鸡:20,公鸡:0,小鸡:80
母鸡:13,公鸡:5,小鸡:82
母鸡:6,公鸡:10,小鸡:84
这仅是我的想法而已,通过这种题我深刻地体会到计算机和数学真的是一家啊。
请大家提出意见。。。
分享到:
相关推荐
VB 百元买百鸡 VB 百元买百鸡 VB 百元买百鸡
VB6.0编程解“百元买百鸡”问题“鸡兔同笼”、“百元买百鸡”问题是经典的数学运算问题,在没有计算机之前都是通过把所以可能的情形依依列举出来,然后汇总出所有方案,这样计算过程相当繁琐,接下来介绍用VB6.0编程...
百元买百鸡问题。假定公鸡每只5元,母鸡每只3元,小鸡1元钱3只。现在有100元钱要求买100只鸡,请编程列出所有可能的购鸡方案
百元买百鸡_vb6_VB6数学计算_百元买百鸡_源码.zip
【无标题】百元买百鸡问题-java经典(csdn)————程序
百元买百鸡c语言.c
枚举法解决百元买百鸡PPT学习教案.pptx
scratch3源码百元买百鸡本资源系百度网盘分享地址
枚举法解决百元买百鸡PPT课件.pptx
枚举法解决百元买百鸡学习教案.pptx
百钱买百鸡问题 语言用的c# 用windows 程序实现
课程的随堂作业,C语言的,用dev就能运行,萌新代码,勿喷,仅仅帮助不想写作业的朋友方便一下,反正老师也不会仔细检查的
15-百元买百鸡-项目源码与素材,Scratch少儿编程,经典教学作品,儿童益智游戏
解决一百元买一百只鸡的数学问题
在arm的ads1.2环境下,用汇编写的百元百鸡程序。
Scratch 是一种图形化编程语言,适合初学者进行编程学习和创作各种项目。以下是学习 Scratch 的好处: 1. 简单易学:Scratch 使用图形拼图的方式代替传统编程语言中的复杂代码,使得编程变得更容易理解和上手。即使...
用java代码实现了百钱买百鸡的数学问题,用了两重循环。
百鸡百钱问题。公鸡每只3元,母鸡每只5元,小鸡3只1元,用100元钱买100只鸡,公鸡、母鸡、小鸡应各买多少?
各种小程序包括person类,百钱买百鸡等
超级简单的一个题目:百钱买百鸡问题(Java/Dos版) 已知大公鸡三元钱一只,大母鸡一元钱一只,小鸡一元钱买三只。现有100元钱,想买100只鸡,请编写程序解决这个问题。