您的位置:首页 > 其它

鸡兔同笼

2015-08-30 15:57 232 查看
原题:今有鸡兔同笼,上有三十五头,下有九十四足,问鸡兔各几何?

解题思路:

假如砍去每只鸡,每只兔一半的脚,那鸡兔的总脚数变成了94/2=47;

如果笼子里有一只兔子,那么脚的数量比头多一个。因此,兔的数量就是47-35=12,则鸡的数量就是35-12=23。

上述方法叫做化归法

下面我们用枚举法来写程序代码;

设鸡有i只,兔有j只

#include <stdio.h>

int main()
{
int i,j;
for(i=1;i<35;i++)
{
for(j=1;j<35;j++)
{
if((i+j==35)&&(2*i+4*j==94))
{
printf("鸡有%d只,兔有%d只\n",i,j);
}
}
}
return 0;
}


可是这样一来循环的次数就有点多了,下面我们改进效率

两只鸡和一只兔的叫数量是相等的,所以鸡的数量不超过三分之二,即i<25,j<13;

第二次循环可以改为从35-i开始

#include <stdio.h>

int main()
{
int i,j;
for(i=1;i<25;i++)
{
for(j=35-i;j<13;j++)
{
if((i+j==35)&&(2*i+4*j==94))
{
printf("鸡有%d只,兔有%d只\n",i,j);
}
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: