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);
}
}
}
}
文章图片
方法二:
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解决“鸡兔同笼”问题】也是完整版,可以判断是否有逻辑错误
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(抽象类与接口的区别&重载与重写&内存泄漏)
- parallels|parallels desktop 解决网络初始化失败问题
- 野营记-第五章|野营记-第五章 讨伐梦魇兽
- 艾略特的交易法则“遵循自然规律”
- 闲杂“细雨”
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- “成长”读书社群招募
- 上班后阅读开始变成一件奢侈的事
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- “精神病患者”的角度问题