1808 - 鸡兔同笼问题

通过次数

0

提交次数

0

时间限制 : 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();
	}
}