大家好:

今天看到这个问题的时候着实费了翻功夫,在数学中这个应用题是很好解决的!用代码解决还真有点绕,借鉴了一下前人的方法,我自己加以改进!供大家参详下!

import java.util.Scanner;

public class Test {

public static void main(String[] args) {

new Test();

}

public Test(){

int head = 0;

int foot = 0 ;

String biaoshi;

String [] parameters;

Scanner input = new Scanner(System.in);

System.out.println("请输入头的数量和脚的数量,中间用逗号分开(英文)!0:程序退出");

try {

while (true) {

biaoshi = input.next();

parameters = biaoshi.split(",");

head =Integer.parseInt(parameters[0]);

foot =Integer.parseInt(parameters[1]);

if(foot<2 || (foot%2)!=0){

System.out.println("请输入正确的脚得数量!");

continue;

}else{

break;

}

}

} catch (Exception e) {

System.out.println("程序已经退出");

System.exit(0);

}

int ji,tuMax;

tuMax = foot / 4; // 兔子的最大值

for (int tu = 0; tu <= tuMax; tu++) {

ji = (foot - 4 * tu) / 2; // 从兔子个数为0开始测试,穷举所有情况

if (ji + tu == head) { // 如果鸡兔数量=头数,则输出

System.out.println("鸡有" + ji + "只\t兔子有" + tu + "只");

}

}

new Test(); //递归

}

}

这样就可以准确的输出鸡跟兔子的数量了,关键还是这个for循环啊!

更多推荐

java代码鸡兔同笼_鸡兔同笼 java代码