工程热力学曾丹苓答案:1、 编程实现下列穷举问题

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/28 21:37:25
有36块砖,共36人搬,成年男子一次搬4块砖,成年女子一次搬3块砖,儿童两人抬地块砖,恰好一次全部搬完,编程求出成年男子,成年女子和儿童各有多少人?

我用C语言编一个:
main()
{
int man, woman, kid;

for(man=0; man<=9; man++)
{
for(woman=0; woman<=12; woman++)
{
kid = 36 - man - woman;
if(man*4 + woman*3 + kid/2 == 36)
{
printf("man:%d ,woman:%d ,kid: %d\n", man, woman,kid);
}
}
}
}

搀和一下,把上面程序做个优化,:
Dim x As Integer
Dim y As Integer
Dim z As Integer
For x = 0 To 9
For y = 0 To 12
For z = 0 To 36
If (x + y + z = 36) And (4 * x + 3 * y + 0.5 * z = 36) Then
Print "男子" & x & "女子" & y & "儿童" & z
End If
Next z
Next y
Next x
声明,我这是抄的 forKid 的程序,如觉得不错请采纳 forKid的。我只搀和一下。

Dim x As Integer
Dim y As Integer
Dim z As Integer
For x = 0 To 36
For y = 0 To 36
For z = 0 To 36
If (x + y + z = 36) And (4 * x + 3 * y + 0.5 * z = 36) Then
Print "男子" & x & "女子" & y & "儿童" & z
End If
Next z
Next y
Next x