这个鸡兔同笼的算法我不是很理解,希望大家帮我解析一下代码,并举个实际数字的例子给我看一下,非常感谢!
#include <cstdio>
int main()
{
int nCases, nFeets;
while (scanf("%d", &nCases) != EOF)
{
for (int i = 0; i < nCases; i++)
{
scanf("%d", &nFeets);
if (nFeets % 4 == 0)
printf("%d%d\n", nFeets / 4, nFeets / 2);
else if (nFeets % 2 == 0)
printf("%d%d\n", nFeets / 4 + 1, nFeets / 2);
else
printf("0 0\n");
}
}
return 0;
}
这个代码和前面的分析是意义对应的,
#include <cstdio>
int main()
{
int nCases, nFeets;
while (scanf("%d", &nCases) != EOF)//判定共有多少组输入
{
for (int i = 0; i < nCases; i++)
{
scanf("%d", &nFeets);//扫描每一组输入中脚的数量
if (nFeets % 4 == 0)//如果能被4整除,则认为全是兔子
printf("%d%d\n", nFeets / 4, nFeets / 2);
else if (nFeets % 2 == 0)//否则,认为有1只鸡,剩余的全是兔子
printf("%d%d\n", nFeets / 4 + 1, nFeets / 2);
else
printf("0 0\n");//否则为奇数或0,认为没有合理情况,输出0 0
}
}
return 0;
}
#include <cstdio>
int main()
{
int nCases, nFeets;
int n;
scanf("%d",&n);
for(nFeets=2;nFeets<=n;nFeets+=2)
{
for(nCases=4; nCases< =n ; nCases+=4)
{
if (nFeets % 2 == 0 && nCases% 4 == 0 && nFeets+nCases == n)
printf("%d%d\n", nFeets / 2, nFeets / 4);
}
}
return 0;
}