网吧消防安全许可证:百钱买百鸡用编程的方法怎么写??

来源:百度文库 编辑:神马品牌网 时间:2024/04/30 09:34:16
母鸡3元,公鸡5元,小鸡一元三只。
谢谢!

1楼的方法不对,因为没有保证是百钱,而只是保证百鸡。下面是正确的方法:

#include <stdio.h>
#include <stdlib.h>

int main()
{
for (int i = 0; i <= 33; i++)
{
int j_end = (100 - i*3)/5;
for (int j = 0; j <= j_end; j++)
{
int k = (100 - i*3 - j*5)*3;
if (i + j + k == 100)
{
printf("%d %d %d\n", i, j , k);
}
}
}
return 0;
}

程序运行结果:(有4个解)
4 12 84
11 8 81
18 4 78
25 0 75

自己看看吧,楼上的说的很详细了.

用C#.NET来编写可以这样写:

int MaxNum=100;//鸡的数量
int MaxPri=100;//钱的数量

//假设母鸡从0只到100只
for (int x=0;x<=MaxNum;x++){
//假设公鸡从0只到100只
for (int y=0;y<=(MaxNum-x);y++){
//假设小鸡从0只到100只
for (int z=0;z<=(MaxNum-y-x);z=z+3){
//计算鸡总数和价格总和是否满足条件
if (((x+y+z)==MaxNum)&&((x*3+y*5+z/3)==MaxPri))
//满足条件则输出结果
Response.Write(x.ToString()+" "+y.ToString()+" "+z.ToString()+"<br>");
}
}
}

结果:
4 12 84
11 8 81
18 4 78
25 0 75

PS:只需要修改参数MaxNum和MaxPri就可以很方便地计算任何数量任意钱的结果集。

用楼上的就行啊。

这是编程框架,请参考
for x=1 to 33
for y=1 to 20
for z=3 to 330 step 3
if x+y+z=100 then goto endfor
next z
next y
next x