NYOJ - 64 - 鸡兔同笼(二元一次方程组)
2016-10-28 13:07
225 查看
描述
已知鸡和兔的总数量为n,总腿数为m。输入n和m,依次输出鸡和兔的数目,如果无解,则输出“No answer”(不要引号)。
输入第一行输入一个数据a,代表接下来共有几组数据,在接下来的(a<10)
a行里,每行都有一个n和m.(0<m,n<100)
输出输出鸡兔的个数,或者No answer
样例输入
样例输出
思路:题目中给出了鸡和兔的总个数n,还有腿的总数m。那么假设鸡有x只,兔有y只,那么得到方程组
x+y=n;
2x+4y=m;
只要将x和y求出来即可。
#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
int n,a,b,x,y;
// a+b = n;
// 2*a+4*b = m;
int main(){
cin>>n;
while(n--){
cin>>a>>b;
x = (4*a-b)/2;
y = a-x;
if(x>=0&&y>=0&&2*x+4*y<=b){//求解出来的答案要符合实际
printf("%d %d\n",x,y);
}else{
puts("No answer");
}
}
return 0;
}
已知鸡和兔的总数量为n,总腿数为m。输入n和m,依次输出鸡和兔的数目,如果无解,则输出“No answer”(不要引号)。
输入第一行输入一个数据a,代表接下来共有几组数据,在接下来的(a<10)
a行里,每行都有一个n和m.(0<m,n<100)
输出输出鸡兔的个数,或者No answer
样例输入
2 14 32 10 16
样例输出
12 2 No answer
思路:题目中给出了鸡和兔的总个数n,还有腿的总数m。那么假设鸡有x只,兔有y只,那么得到方程组
x+y=n;
2x+4y=m;
只要将x和y求出来即可。
#include<cstdio>
#include<iostream>
#include<string>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
int n,a,b,x,y;
// a+b = n;
// 2*a+4*b = m;
int main(){
cin>>n;
while(n--){
cin>>a>>b;
x = (4*a-b)/2;
y = a-x;
if(x>=0&&y>=0&&2*x+4*y<=b){//求解出来的答案要符合实际
printf("%d %d\n",x,y);
}else{
puts("No answer");
}
}
return 0;
}