题目描述
例如:有若干只鸡兔同在一个笼子里,从上面数,有14个头,从下面数,有32只脚。问笼中各有多少只鸡和兔?
算这个有个最简单的算法
(总脚数-总头数×鸡的脚数)÷(兔的脚数-鸡的脚数)=兔的只数
(32-14×2)÷2=2(兔子数)
总头数(14)-兔子数(2)=鸡数(12)
解释
让兔子和鸡同时抬起两只脚,这样笼子里的脚就减少了总头数×2只,由于鸡只有2只脚,所以笼子里只剩下兔子的两只脚,再÷2就是兔子数。
输入:
通过键盘输入总头数和总脚数
输出:
求出兔子有多少只,鸡有多少只,并输出。
样例输入:
请输入鸡和兔的总头数和总脚数,用空格隔开:
14 32
样例输出:
兔子个数:2,鸡的个数:12
请按任意键继续. . .
C语言鸡兔同笼问题算法代码1:#include "stdio.h"
int main()
{
int a,b,n, m;
// a鸡的数量
// b兔的数量
// n鸡兔总数
// m总脚数
scanf("%d %d", &n,&m);
a = (4 * n - m) / 2;//算出鸡的数量
b = n - a;//算出兔的数量
if (a <= 0 || b <= 0)
{
//结果小于等于0,答案不成立,无解
printf("No answer");
}
else
{
//结果大于0
printf("%d %d", a, b);
}
return 0;
}
C语言鸡兔同笼问题算法代码2:#include
int main(void)
{
int head, foot, num1, num2;
printf("请输入鸡和兔的总头数和总脚数,用空格隔开:\n");
scanf("%d %d", &head, &foot);
if (foot % 2 == 1 || foot < head * 2)
{
printf("输入有误!\n");
return 0;
}
num1 = (foot - head * 2)/(4 - 2);
num2 = head - num1;
if ((num1 >= 0) && (num2 >= 0))
printf("兔子个数:%d,鸡的个数:%d\n", num1, num2);
else
printf("输入有误!\n");
return 0;
}
done!