.请编写一个Java程序,能够计算鸡兔同笼问题,已知笼中共有9个头和26只脚,要求计算出该笼中有几只兔子几

2024-11-29 06:19:26
推荐回答(5个)
回答1:

public static void main (String[]args){
int rabbitsNumber=0;
int chickensNumber=0;
for(chickensNumber=0;chickensNumber<=9;chickensNumber++) { //遍历鸡的只数
rabbitsNumber=9-chickensNumber; //兔的只数等于9 - 鸡
if(2*chickensNumber+4*rabbitsNumber==26) //鸡和兔的脚总数是26
System.out.println("鸡"+chickensNumber+"只,兔"+rabbitsNumber+"只");
}
}

回答2:

很明显,这个题目的原型是一个数学中二元一次方程组。

1、数学算法:

设:鸡的数量为x,兔的数量为y;可得:

x  + y  =9

2x+4y=26

最终解得:鸡的数量为5,兔的数量为4。

2、Java的解题思路:

1)入门级做法:通过暴力枚举,最终能枚举出匹配的结果。这里不推荐使用。

2)进阶做法:

public class Test2 {
private int head;
private int foot;

public Test2(int head, int foot) {
super();
this.head = head;
this.foot = foot;
}

public int getRabbit() {
return (foot - 2 * head) / 2;
}

public int getChicken() {
return (4 * head - foot) / 2;
}

public static void main(String[] args) {
Test2 test = new Test2(9, 26);
System.out.println("鸡的数量:" + test.getChicken());
System.out.println("兔的数量:" + test.getRabbit());
}
}

运行结果:

鸡的数量:5
兔的数量:4

回答3:

一楼天才!!!!!!就一个一次函数哎,都算错了。二楼正确,代码也对。

回答4:

int tu=0;
for(int i=0;i<=9;i++){
if(i*4+(9-i)*2==26){
tu=i;
break;
}
}
结果兔4鸡5,不知道一楼七只鸡两只兔是怎么算的。

回答5:

呵呵,我知道是七只鸡两只兔,叫我遍程序倒是不会,期待高手!!!