[蓝蓝计算机考研算法]-day11鸡兔同笼

160 阅读1分钟

题目描述

已知鸡和兔的总数量为n,总腿数为m。输入n和m,依次输出鸡和兔的数目,如果无解,则输出“No answer”(不要引号)。

输入描述

输入第一行输入一个数据a,代表接下来共有几组数据,在接下来的(a<10)、a行里,每行都有一个n和m。(0<m,n<100)

输出描述

输出鸡兔的个数,或者No answer。

思路

  • 用一个for循环来遍历鸡和兔的数量,若鸡腿和兔腿的数量相加等于总腿数,则输出。

  • 用flag来标记状态,初始=0,如果有输出,则将flag置为1。若遍历完后flag=0,则表示无解,输出No answer。

具体实现

#include<bits/stdc++.h>
using namespace std;
int main(){
	int a;
	cin>>a;
	while(a--){
		int m,n; //鸡和兔的总数量n,总腿数m 
		cin>>n>>m;
		int c,r; //c表示鸡数量,r表示兔数量
		int flag=0;
		for(int c=0,r=n; c<n; c++,r--){
			if(c*2 + r*4 == m){
				cout<<c<<" "<<r<<endl;
				flag=1;
			} 
		}
		if(flag==0) cout<<"No answer"; 
	}
	return 0; 
}