哥们帮解决这个C语言问题

来源:百度知道 编辑:UC知道 时间:2024/06/03 11:03:45
中国古代有一道著名的数学题:已知大公鸡三文钱一只,母鸡两文钱一只,小鸡一文钱买三只。现有100文钱,想买100只鸡,请问有几种组合方式。请编写程序解决这个问题。

呵呵,楼上的解法有点误会了,嘻嘻,可能粗心没看清题:

首先用3个for循环设计的:公鸡定义为n只,母鸡为m只,小鸡就是(100-n-m)只,这样并不能限定一定是买100只鸡;

其次:if((x*3*3+y*2*3+z)==300)这个有可能出现小鸡的数量是奇数,对原题来说不可能吧。

给出一个可以得出正确答案的代码,可能算法不咋样,循环的条件也定义的过大了点,有点浪费,楼主思考下改改吧
#include<stdio.h>
void main()
{
int x,y,z,count=0;
for(x=0;x<34;++x)
{
for(y=0;y<50;++y)
{
for(z=0;z<300;++z)
{
if(x+y+z==100&&5*x+3*y+z/3==100&&z%3==0)
{
count++;
}
}
}
}
printf("%d\n",t);
}

先用数学方法想清楚再写
大公鸡x只,母鸡y只,小鸡z只。
有x + y + z = 100
3 * x + 2 * y + z / 3 = 100
z % 3 == 0
由此可有以下想法,先找小鸡数
int main(void)
{
int mCock = 0, hCock = 0, minCock = 0;
int num = 0;
for (minCock = 0; minCock < 100; min += 3)
{
for(mCock = 0; mCock < 100; mCock++)
{
for(hCock = 0; hCock < 100; hCock++)