1808 - 鸡兔同笼问题
时间限制 : 3 秒
内存限制 : 128 MB
已知鸡和兔的总数量为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
C语言解答
#include <stdio.h> int main(){ int i,m,n; int a,b; int result[10],t; scanf("%d",&i); t=i; while(i--){ scanf("%d%d",&n,&m); a=(4*n-m)/2; b=(m-2*n)/2; if(a<0 || b<0 || m%2!=0) printf("No answer\n"); else printf("%d %d\n",a,b); } return 1; }
C++解答
#include<iostream> using namespace std; int main() { int n,a,b,p,q; cin>>n; while(n--) { cin>>a>>b; q=(b-2*a)/2; p=a-q; if(p<0 ||q<0 || b%2) cout<<"No answer"<<endl; else cout<<p<<" "<<q<<endl; } }
Java解答
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int a=sc.nextInt(); while(a-->0){ int n=sc.nextInt(),m=sc.nextInt(); int x=(4*n-m)/2; int y=(m-2*n)/2; if(m%2!=0||x<0||y<0){ System.out.println("No answer"); }else{ System.out.println(x+" "+y); } } sc.close(); } }