百钱买百鸡问题,怎么也想不通,求助啊!!!!
100元买:小鸡0.5元/只;母鸡2元/只;公鸡3元/只 几种方案?我的思路:x+y+z==100&&0.5*x+2*y+3*z==100
我输得程序:
#include <stdio.h>
main()
{int x,y,z;
for(x=100,x>=0,x--)
{
for(y=100,y>=0,y--)
{
for(z=100,(x+y+z==100)&&(0.5*x+2*y+3*z==100),z--)
printf("x=%d y=%d z=%d",x,y,z)
}
}
}
各位老师我错在哪儿了,怎么无数出???
----------------解决方案--------------------------------------------------------
终于研究出来了
#include <stdio.h>main()
{int x,y,z;
for(x=100,x>=0,x--)
{
for(y=100,y>=0,y--)
{
for(z=100;z>=0,z--)
{
if(x+y+z==100)&&(0.5*x+2*y+3*z==100),z--)
printf("x=%d y=%d z=%d",x,y,z);
continue;
}
}
}
}
----------------解决方案--------------------------------------------------------
恭喜
----------------解决方案--------------------------------------------------------
建议改为
建议改为#include <stdio.h>
main()
{int x,y,z;
for(x=100;x>=0;x--)
{
for(y=100;y>=0;y--)
{
for(z=100;z>=0;z--)
{
if((x+y+z==100)&&(0.5*x+2*y+3*z==100))
{z--;
printf("x=%d y=%d z=%d\n",x,y,z);
}
continue;
}
}
}
}
----------------解决方案--------------------------------------------------------
楼上的不错啊,其实还要考虑效率问题,做计算要是大量得计算效率很重要,优化算法也很关键啊
----------------解决方案--------------------------------------------------------
我也修改了一下程序,减少了循环次数,减少了一层循环,大家指点一下.
#include <stdio.h>
main()
{int x,y,z; /* x为公鸡数目,y为母鸡数目,z为小鸡数目 */
for(x=33;x>=0;x--)
{
for(y=50;y>=0;y--)
{
z=100-x-y;
if(z>=0)
if(3*x+2*y+0.5*z==100.0)
printf("x=%d y=%d z=%d\n",x,y,z);
}
}
}
[[italic] 本帖最后由 苦中求乐 于 2008-1-12 12:45 编辑 [/italic]]
----------------解决方案--------------------------------------------------------
不错啊,帮你顶一下啊,呵呵,时间缩短了.
----------------解决方案--------------------------------------------------------
第九行的 if(z>=0)也可以不要呀!x=33
y=50已是最大了,100-X-Y不可能比0小了
----------------解决方案--------------------------------------------------------
FOR语句里不用分号也能通过编译,你用的什么工具编程呀
----------------解决方案--------------------------------------------------------
#include<stdio.h>
void main()
{
int i,j,k;
for(i=0;i<34;i++)
for(j=0;j<=50;j++)
for(k=0;k<=200;k++)
if(i*3+j*2+k*0.5==100)
printf("%d %d %d\n",i,j,k);
}
这个可以吗??感觉用了三层循环多了。。但是好理解。好写;
----------------解决方案--------------------------------------------------------