数学应用题,要用算法答~·

来源:百度知道 编辑:UC知道 时间:2024/05/31 09:45:12
幼儿园有一个班有30个孩子,现在有680元,计划给每一个孩子买一个玩具,已知大玩具每一个35元,中玩具每一个25元,小玩具每一个10元,问用完这680元,大中小玩具各买多少个?编写出程序求出所有可能的方案。
帮帮忙吧、、明天就交了、、这个破算法弄我的都要疯了。。就是不会、、、拜托了好人们

C的程序代码:
# include<stdio.h>
void main()
{
int x,y,z;
for(x=0;x>=0 && x<20;x++)
{
for(y=0;y>=0 && y<28;y++)
{
for(z=0;z>=0 && z<=68;z++)
{
if(x+y+z==30 && 35*x+25*y+10*z==680)
{
printf("x=%d,y=%d,z=%d\n",x,y,z);
printf("\n");
}
}
}
}
}
结果是:
x=2,y=22,z=6
x=5,y-17,z=8
x=8,y=12,z=10
x=11,y=7,z=12
x=14,y=2,z=14

S1:a=1,b=0,c=30-a-b S2:判断35a+25b+10c=680是否成立
S3:如果成立,输出a,b,c S4:如果不成立,b=b+1
S5:判断b<=30是否成立 S6:如果成立,返回第二步
S7:如果不成立,a=a+1 S8:判断a<=30是否成立
S9:如果成立,返回第二步

这是我的暑假作业里的一道题,如果不是这样做的话,告诉我怎样做好不好?

设大玩具X,中玩具Y,小玩具Z
X+Y+Z=30
35X+25Y+10Z=680
先令X=1,算下,然后再令X=2
然后3,算几个就行了

int x,y,z;
for(x=0;x<=30;x++)
for(y=0;y<=30;y++)
for(z=0;z<=30;z++)
if(((x+y+z)==30) && ((35*x+