鸡兔同笼问题 Java解法
已知鸡和兔的总数量为n,总腿数为m。输入n和m,依次输出鸡和兔的数目,如果无解,则输出“No answer”(不要引号)。
输入 :
第一行输入一个数据a,代表接下来共有几组数据,在接下来的(a<10)
a行里,每行都有一个n和m.(0<m,n<100)
输出 :
输出鸡兔的个数,或者No answer
样例输入
2
14 32
10 16
下面展示一些 代码
import java.util.Scanner;
public class 鸡兔各有多少只
{
public static void main(String[] args) {
// 已知鸡和兔的总数量为n,总腿数为m。输入n和m,依次输出鸡和兔的数目,如果无解,则输出“No answer”(不要引号)。
Scanner sc = new Scanner(System.in);
int m = 0, n = 0;
// 代表几组数据
int score = sc.nextInt();
// 存储几组数据
int[] num = new int[score * 3];
for (int i = 0, j = 0; i < score; i++, j = j + 2)
{
// 输入鸡兔总数
n = sc.nextInt();
// 输入总腿数
m = sc.nextInt();
num[j++]=n;
int x = n, y = 0;// x代表鸡的数量(鸡的腿少),y代表兔子的数量
while (x>=0)
{
if (2 * x + 4 * y == m && x + y == n)
{
num[j] = x;
num[j + 1] = y;
break;
}
if (2 * y + 4 * x == m && x + y == n)
{
num[j + 1] = x;
num[j] = y;
}
x--;
y++;
}
}
for (int i = 0; i < num.length; i = i + 3)
{
int y = num[i+1] + num[i + 2];
if ( y== num[i])
{
System.out.println("兔子:"+num[i+1] + " 鸡:" + num[i + 2]);
} else
{
System.out.println("No answer");
}
}
}
}
样例输入:
2
14 32
10 16
样例输出:
12 2
No answer