【鸡兔同笼 64】
2013-04-03 12:52
225 查看
鸡兔同笼
时间限制:3000 ms | 内存限制:65535 KB难度:1
描述已知鸡和兔的总数量为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 chicken,n; scanf("%d",&n); while(n--) { int sum,sumfoot; scanf("%d %d",&sum,&sumfoot); int m=1; for(int chicken=0;chicken<=sum;chicken++) { if(chicken*2+(sum-chicken)*4==sumfoot) { printf("%d %d\n",chicken,sum-chicken); m=0; } } if(m==1) { printf("No answer\n"); } } return 0; }
算法竞赛指南上的做法:
a+b=n;
2a+4b=m;
a=(4n-m)/2;
b=n-a;
但是要求m必须为偶数,a和b 是不小于0的数。
#include<iostream> #include<cstdio> using namespace std; int main(){ int k; int a,b,n,m; cin>>k; while(k--){ cin>>n>>m; a=(4*n-m)/2; b=n-a; if(m%2==1 || a<0 || b<0) cout<<"No answer"<<endl; else cout<<a<<" "<<b<<endl; } }