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+"只");
}
}
很明显,这个题目的原型是一个数学中二元一次方程组。
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
一楼天才!!!!!!就一个一次函数哎,都算错了。二楼正确,代码也对。
int tu=0;
for(int i=0;i<=9;i++){
if(i*4+(9-i)*2==26){
tu=i;
break;
}
}
结果兔4鸡5,不知道一楼七只鸡两只兔是怎么算的。
呵呵,我知道是七只鸡两只兔,叫我遍程序倒是不会,期待高手!!!