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;//兔子的只数就等于全部都抬起两只脚后,剩余脚的数量除以2

        int chicken = sum - rabbit;//鸡的只数

        System.out.println("有" + chicken +"只鸡");
        System.out.println("有" + rabbit + "只兔子");
    }
}

在这里插入图片描述

方法三:

也是完整版,可以判断是否有逻辑错误

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;
                }
            }
        }
    }
}

正确情况:
在这里插入图片描述
错误情况:
在这里插入图片描述

  • 45
    点赞
  • 162
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值