100块钱买100只鸡,其中公鸡5元一只,母鸡3元一只,小鸡1元3只,该怎么用C++编写代码?

我编写的代码 int x,y,z;
for(x=0;x<=20;x++)
for(y=0;y<=33;y++)
{z=100-x-y;
if(5*x+3*y+(100-x-y)/3==100)
cout<<x<<y<<z
}
}
可是结果只有一种,但是我用数学方法算是不只以种答案的!

第1个回答  推荐于2016-12-01
共找到4 组解,C程序如下:

//---------------------------------------------------------------------------

#include <stdio.h>

int main(void)
{
int g,m,x;

for (g=0; g<=20; g++) {
for (m=0; m<=33; m++) {
x=100-g-m;
if (!(x%3)&&x/3+m*3+g*5==100) {
printf("%d %d %d\n",g,m,x);
}
}
}

return 0;
}
//---------------------------------------------------------------------------本回答被提问者采纳
第2个回答  2018-03-01
【限制 :7x/4+y=25 试一试】
x+y+z=100(1)
5x+3y+z/3=100
15x+9y+z=300(2)
(2)-(1)得
14x+8y=200
7x/4+y=25
x=4, y=18, z=...
x=8, y=11, z=....
x=12, y=4, z=...
第3个回答  2017-12-05
#include <stdio.h>
main()
{
int x,y,z;
for(x=1;x<33;x++)
for(y=1;y<20;y++)
for(z=3;z<100;z+=3)
if(x+y+z==100&&5*x+3*y+z/3.0==100)
printf("%d %d %d\n",x,y,z);
}
第4个回答  2018-03-01
共找到4 组解,C程序如下:

//---------------------------------------------------------------------------

#include <stdio.h>

int main(void)
{
int g,m,x;

for (g=0; g<=20; g++) {
for (m=0; m<=33; m++) {
x=100-g-m;
if (!(x%3)&&x/3+m*3+g*5==100) {
printf("%d %d %d\n",g,m,x);
}
}
}

return 0;
}
//---------------------------------------------------------------------------
相似回答