【题目描述】
数学中经典的“鸡兔同笼”问题,已知头共x个,脚共y只,问笼中的鸡和兔各有多少只?
【输入】
头和脚的数量。
【输出】
鸡和兔各自数量。一个空格隔开。
【输入样例】
30 90
【输出样例】
15 15
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
/*
int x,y;
int a=0;
int b=0;
scanf("%d %d",&x,&y);
for(int i=0;i<=x;i++){
for(int j=0;j<=x;j++){
if(i+j==x&&i*2+j*4==y)
{
printf("%d %d",i,j);
}
}
}
return 0;
*/
/*
【分析】设鸡为j只,兔为t只,头为h,脚为f,那么有:
j+t=30
2*j+4*t=90
假设笼中30个头全都是兔,那么都按每头4只脚计算,总脚数为(4*h),
与实际脚数(f)之差为(4*h-f),如果这个差=0,则笼中全是兔(即鸡为0只);
如果这个差值>0,说明多计算了脚数,
凡是鸡都多计算了两只脚,用它除以2就能得到鸡的只数,算法为:
j=(4*h-f)/2 //先用脚数差值除以2算出鸡的只数
t=h-j //再用总头数减鸡数算出兔的只数
*/
int h,f,j,t;//定个变量
scanf("%d %d",&h,&f);//赋初始值
j=(4*h-f)/2;//计算鸡的只数
t=h-j;//计算兔的只数
printf("%d %d",j,t);//输出结果
return 0;
}