题目描述:
鸡和兔子在被关在一起。鸡有一个头,两条腿;兔子有一个头,四条腿。现已知笼子中头的个数 m,和腿的个数 n (1 < m < n < 1000),求出笼子中鸡和兔子的个数 a, b。
输入描述:
多组输入,每组数据一行,其中包含 2 个正整数 m, n ,分别代表笼中头的个数和腿的个数
输出描述:
对于每组测试数据输出仅一行,其中包含两个整数 a, b ,分别代表鸡的个数和兔子的个数,如果算不出鸡和兔子的个数则令 a = -1,b = -1
样例输入:
1 4
2 4
10 16
样例输出:
0 1
2 0
-1 -1
#include <stdio.h>
void main()
{ int a,b,c,d;
printf("这是一个用于算鸡兔同笼的小程序\n请输入鸡兔的总数");
scanf("%d",&a);
if(a>=0)
{
printf("\n请输入鸡兔脚的总数");
scanf("%d",&b);
if(b%2==1)
printf("脚的数量出现奇数,真奇怪啊!\n");
else if(b<=a*4&&b>=a*2)
{
c=(4*a-b)/2; // 鸡的数目
d=a-c; // 兔的数目
if(c*2+d*4==b)
printf("鸡有%ld只\n兔有%ld只\n",c,d); // c和d反了
else
printf("这个真难,计算机也没法算!\n");
}
else
printf("输入鸡兔脚的数量范围不正确,正确的范围是%d--%d!\n",a*2,a*4);
}
else
printf("数量不能为负!\n");
}
题目没有给出输入终止的条件,程序中补充了,当输入的在头或脚的个数出现负数时,停止输入,程序中止。程序如下,已经运行过:
void main()