有若干只鸡兔同在一个笼子里,从上面数,有 35 个头;从下面数,有 94 只脚。
本次挑战需要你动手编写一个程序求出笼中各有几只鸡和兔。
package org.lanqiao.cloudclass;
import java.util.Scanner;
//鸡兔同笼
public class Chickenwithrabbitcage {
public static void main(String[] args) {
int x,y;//鸡的数量为x,兔的数量为y
Scanner sc=new Scanner(System.in);
//头的数量为head,脚的数量为foot
System.out.print("请输入头的数量:");
int head=sc.nextInt();
System.out.print("请输入脚的数量:");
int foot=sc.nextInt();
//鸡的脚为2只,兔的脚为4只
if(foot%2==0){
/*
鸡的数量和兔的数量应该是等于总头数的
x+y=head
两只脚*鸡的个数+4只脚*兔的个数 = 脚的总数
2*x+4*y=foot
鸡的数量 = 2 * 总头数 - 总脚数/2
x=2*head-foot/2
兔的数量 = 头 - 鸡的数量
y=head-x;
*/
x=2*head-foot/2;
y=head-x;
if(x>=0&&y>=0){
System.out.println("鸡的数量为:"+x+",兔的数量为:"+y);
}else{
System.out.println("不存在此分配方案!");
}
}else{
System.out.println("不存在此分配方案!");
}
sc.close();
}
}
第二种方法
package org.lanqiao.大数据3班;
import java.util.Scanner;
public class HomeWork3 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入脚的总数");
int foot = sc.nextInt();
System.out.println("请输入头的总数");
int head = sc.nextInt();
//鸡
int x = 0;
//兔子
int y = 0;
for(x=0;x<=head;x++) {
//兔的只数等于总数 - 鸡的数
y=head-x;
//如果鸡和兔的脚总数是脚的总数 就找到正确答案
if(2*x+4*y==foot) {
System.out.println("鸡有"+x+"只,兔有"+y+"只");
}
}
}
}