小学我们就学过鸡兔同笼问题,那时候我们用的是二元一次方程组解决的,现在让我们来学习如何在C语言中实现。
问题回顾:
有若干只鸡兔同在一个笼子里,从上面数,有35个头,从下面数,有94只脚。问笼中各有多
少只鸡和兔?
题目:鸡和兔子共n只,共m条脚。
输入:n和m
输出:鸡和兔子的数量,如果没有解,输出“No”。
思路分析:设鸡有a只,兔有b只,则 / a + b = n || 联解得 / a = (4n-m)/2
\ 2a + 4b = m || \ b = n-a
首先判断n,m是否为正整数,不是的话直接No
简单代码(头98脚386 的情况)
#include<stdio.h>
int main()
{
int i = 0;
int j = 0;
for (i = 1; i < 98; i++)
{
for (j = 1; j < 98; j++)
{
if ((i + j == 98 )&& (4 * i + 2 * j == 386))
{
printf("鸡有%d只,兔有%d只\n", j, i);
}
}
}
return 0;
}
适普性代码
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, j, n, m;
scanf_s("%d", &n); //n是头的总数
scanf_s("%d", &m); //m是脚的总数
i = (4 * n - m) / 2; //i是鸡的数量
j = n - i; //j是兔的数量
if (m % 2 == 1 || i < 0 || j < 0)
printf("No");
else
printf("%d %d\n", i, j);
return 0;
}