黑马程序员技术交流社区
标题:
Java如何实现已给定数目的鸡兔同笼问题?
[打印本页]
作者:
linweiwen
时间:
2014-3-22 21:53
标题:
Java如何实现已给定数目的鸡兔同笼问题?
一直都在看视频,记笔记,做点练习题后,果然感觉不自在啊,
看来还是要多练习。
就是想问这个问题:
鸡兔同笼,各40个头,100只脚,问鸡兔各有几只?
这对于数学而言列个方程式就OK了,但用Java编出来,大家是怎样实现,
我想了一下,就用了两个for循环,但感觉这样有点傻,
难道真的直接在程序中用方程式的思路,反过来算回去吗?
请解答。
public class HelloWorld
{
public static void main(String args[]){
int chicken,rabbit;
for(chicken=0;chicken<=40;chicken++){
for(rabbit=0;rabbit<=40;rabbit++){
if((chicken+rabbit==40)&&(chicken*2+rabbit*4==100))
{
System.out.println("chicken有"+chicken+"只,rabbit有"+rabbit+"只.");
}
}
}
}
}
复制代码
作者:
乔钰博
时间:
2014-3-22 23:36
这个问题有个比较搞笑的解法,40个头说明鸡和兔子一共40只,让鸡和兔子都抬起一只脚,还剩100-40只脚,让鸡和兔子再抬起一只脚,这时所有的鸡都跌到了,还有60-40=20只脚,这20只脚全部是兔子的,但是兔子已经抬起两只脚了,所以兔子有20/2 = 10只,所以鸡有30只
作者:
Sage
时间:
2014-3-23 00:07
public static void main(String[] args) {
for (int i = 1; i < 40; i++) { // i表示鸡的数量
if (2 * i + 4 * (40 - i) == 100) { // 简化后的数学表达式判断
System.out.println("鸡的数量:" + i + "只 \n免的数量:" + (40 - i) + "只");
}
}
}
复制代码
作者:
linweiwen
时间:
2014-3-23 00:08
本帖最后由 linweiwen 于 2014-3-23 00:12 编辑
乔钰博 发表于 2014-3-22 23:36
这个问题有个比较搞笑的解法,40个头说明鸡和兔子一共40只,让鸡和兔子都抬起一只脚,还剩100-40只脚,让鸡 ...
哈哈,很有意思的想法,
确实启发了我的思路!
其实,可以只关注某一个动物的数量,
就可以减少一个for循环了!
class Shape {
public static void main(String[] args) {
int rabbit = 0;
for (int sum = 0; sum <= 40; sum++) {
if (sum * 4 + (40 - sum) * 2 == 100) {
rabbit = sum;
System.out.println("rabbit:" + rabbit + ";chicken:"
+ (40 - rabbit));
break;
}
}
}
}
复制代码
作者:
焚雨成灰
时间:
2014-3-23 22:34
class Test {
public static void main(String[] args) {
int cockNum = 0;
int rabbitNum = 0;
while(!(cockNum + 2 * (40 - cockNum) == 50)) {
cockNum ++;
}
rabbitNum = 40 - cockNum;
System.out.println(cockNum+"..."+rabbitNum);
}
}
复制代码
凑个热闹 哈哈
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2