Java解决“鸡兔同笼”问题

题目:

鸡兔同笼,鸡兔一共35只,笼子里脚一共94只,请问分别有多少只兔子和多少只鸡?

思路:
鸡兔一共x只, 定义鸡的只数为chicken,那么兔子的只数rabbit则为x-chicken。 一共y只脚,定义脚为foot,则chicken*2+rabbit*4 ==y

代码如下: 方法一:
public class Demo { public static void main(String[] args) { //鸡兔同笼,鸡兔一共35只,笼子里脚一共94只,请问分别有多少只兔子和多少只鸡? int foot = 94; //笼子里一共94只脚 int sum = 35; //鸡兔一共35只for (int chicken = 1; chicken <= foot / 2; chicken++) {//鸡的数量 int rabbit = sum - chicken; //兔子的数量 if(rabbit * 4 + chicken * 2 == foot){ System.out.println("兔子的只数为" + rabbit); System.out.println("鸡的只数为 " + chicken); } } } }

Java解决“鸡兔同笼”问题
文章图片

方法二:
import java.util.Scanner; public class Demo1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一共有多少只脚:"); int foot = sc.nextInt(); System.out.println("请输入鸡兔一共多少只:"); int sum = sc.nextInt(); //鸡和兔子全部抬起两只脚,地上全部都是兔子的脚 //那么脚的数量 - 头的数量乘以2 就是剩余的脚的数量int nowfoot = foot - sum * 2; //都抬起两条腿后,剩余脚的数量 int rabbit = nowfoot / 2; //兔子的只数就等于全部都抬起两只脚后,剩余脚的数量除以2int chicken = sum - rabbit; //鸡的只数System.out.println("有" + chicken +"只鸡"); System.out.println("有" + rabbit + "只兔子"); } }

Java解决“鸡兔同笼”问题
文章图片

方法三: 【Java解决“鸡兔同笼”问题】也是完整版,可以判断是否有逻辑错误
import java.util.Scanner; public class Demo1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一共有多少只脚:"); int foot = sc.nextInt(); System.out.println("请输入鸡兔一共多少只:"); int sum = sc.nextInt(); int chicken = 1; //定义鸡的初始只数为1 int rabbit = sum - chicken; //定义兔子的数量 while(true){//while(true)括号中始终为true“真”,所以就一直执行{}中的内容 if (rabbit * 4 + chicken *2 == foot) { System.out.println("有" + chicken +"只鸡"); System.out.println("有" + rabbit + "只兔子"); break; }else{ chicken++; rabbit--; if (rabbit < 0) { System.out.println("输入的数字有误"); break; } } } } }

正确情况:
Java解决“鸡兔同笼”问题
文章图片

错误情况:
Java解决“鸡兔同笼”问题
文章图片

    推荐阅读