F. 鸡兔同笼
内存限制:128 MiB**时间限制:3000 ms标准输入输出**
题目描述
已知鸡和兔的总数量为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
思路:
方程反解,硬解。
代码:
#include<stdio.h>
int main(){
int m,n,c;
scanf("%d",&c);
while(c--){
scanf("%d %d",&n,&m);
double a=(2.0*n)-(m/2.0),b=(m/2.0)-n;
if((a<0||b<0)||(a!=(int)a &&(b!=(int)b))){printf("No answer\n");
}
else if(a>=0&&b>=0){printf("%0.lf %0.lf\n",a,b);
}
}
}
错误点:大多数人交的第一发,会漏掉,鸡或兔子是小数只要输出no answer的情况.所以我们加上一句:
(a!=(int)a &&(b!=(int)b))