1、2、3、4、5...

1、2、3、4、5...

时间: 20ms        内存:64M

描述:

浙江工商大学校园里绿树成荫,环境非常舒适,因此也引来一批动物朋友来此居住。
童心未泯的redraiment就经常带些碎面包什么的去广场喂鸽子和兔子,并和它们玩耍。一点也不像大学生,还是一副老不正经的样子,呵呵。
随着鸽子和兔子数目的增多,redraiment带的那点食物已经不够它们瓜分了。为了能让自己的好朋友吃的饱饱的,redraiment决定统计一下有多少只鸽子和有多少只兔子,以便带来足够的食物。一、二、三、四、五...他开始数了。
现在,他已经知道有这些鸽子和兔子一共有n个头和m只脚。请你帮他写个程序计算一下一共有多少只鸽子和兔子。

输入:

输入包括多组数据。 每行包括2个数据:n、m(代表上面题目中提到的意思1≤n, m≤230)。 n、m都是整数。 输入以0 0作为结束。

输出:

每组数据的输出都只有一行,分别是鸽子的数量和兔子数量。 如果输入的测试数据不能求得结果,那肯定是redraiment这个马大哈数错了,就输出"Error"提示他。

示例输入:

35 94
1 3
0 0

示例输出:

23 12
Error

提示:

参考答案(内存最优[0]):

#include <iostream>
#include <cmath>
#include <cstdio>
using namespace std;
int main()
{
	int m,n;
	while(1<=n,m<=pow(2,30))
	{while(scanf("%d %d",&m,&n)&&(m||n))
	{if(n%2!=0) cout<<"Error"<<'\n';
	else cout<<2*m-n/2<<" "<<n/2-m<<'\n';}
	}
	return 0;
}

参考答案(时间最优[0]):

#include<stdio.h>
int main()
{
 	int m,n;
 	while(scanf("%d %d",&m,&n),m||n)
	{
		if((n-2*m)%2==0&&(n-2*m)/2>=0&&(n-2*m)/2<=m)
 			printf("%d %d\n",m-(n-2*m)/2,(n-2*m)/2);
 		else printf("Error\n");
 	}
	return 0;
 }

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注