16、鸡兔同笼
已知鸡和兔的总数量为n,总腿数为m。输入n和m,依次输出鸡和兔的数目,如果无解,则输出"No answer”(不要引号)。
输入第一行输入一个数据a,代表接下来共有几组数据,在接下来的(a<10)、a行里,每行都有一个n和m。(0<m,n<100)
输出输出鸡兔的个数,或者No answer
1、思路
对于每组数据,设鸡为x只,兔为y只,得:x+y=n,2 * y+4 * y=m,
消x得:y=(m-2 * n)/2,x=n-y,
则y需要为非负整数且介于0和n之间,即(m-2 * n)%2==0&&m>=2 * n&&m<=4 * n,否则无解。
2、具体实现
Java实现:
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int a=scanner.nextInt();
int m=0,n=0,x=0,y=0;
for (int i = 0; i < a; i++) {
n=scanner.nextInt();
m=scanner.nextInt();
if((m-2*n)%2==0&&m>=2*n&&m<=4*n) {
y=(m-2*n)/2;
x=n-y;
System.out.println(x+" "+y);
}else {
System.out.println("No answer");
}
}
}
结果: