【鸡兔同笼 64】

来源:互联网 发布:2345下载软件 编辑:程序博客网 时间:2024/04/29 16:16

鸡兔同笼

时间限制:3000 ms  |  内存限制:65535 KB
难度:1
描述
已知鸡和兔的总数量为n,总腿数为m。输入n和m,依次输出鸡和兔的数目,如果无解,则输出“No answer”(不要引号)。
输入
第一行输入一个数据a,代表接下来共有几组数据,在接下来的(a<10)
a行里,每行都有一个n和m.(0<m,n<100)
输出
输出鸡兔的个数,或者No answer
样例输入
214 3210 16
样例输出
12 2No 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;elsecout<<a<<" "<<b<<endl;}}