求教分糖果问题
vb吧
全部回复
仅看楼主
level 7
十个孩子围成一圈,每人手上有数目不等的糖果。从指定为第一个的孩子开始,依次将手上的糖果分一半给下一个。所谓依次意思是接到前一个给自己的糖果后,将手上全部糖果的一半分给下一个(当某孩子的糖果为奇数时,他就先吃掉一块然后再分)。如此循环直到除第一个孩子外每人手上的糖果数目相等为止。
糖果数:(12,2,8,22,16,4,10,6,14,20)
child(1) = 6
For i = 1 To 9
child(i + 1) = (child(i + 1) + child(i)) / 2
child(1) = (child(1) + child(10)) / 2
Next i
我的分糖果一段的代码是这样,请问哪里有问题呢
2016年04月29日 13点04分 1
吧务
level 13
哪里都有问题
2016年04月29日 13点04分 3
请问该怎么改呢
2016年04月29日 13点04分
我不太清楚该如何处理child(1)
2016年04月29日 13点04分
回复 孤独症射手 : 1.你没考虑奇数时要吃掉一个的情况 2.传糖果的代码写错了 3.不一定循环9次就能得到结果,要用do循环
2016年04月29日 13点04分
level 1
dota2的头像
2016年04月30日 10点04分 4
level 10
Option Explicit
Option Base 1
Private Sub Command1_Click()
Dim i%, j%, tem%, t As Boolean
Dim child(10) As Integer
For i = 1 To 10
child(i) = Choose(i, 12, 2, 8, 22, 16, 4, 10, 6, 14, 20)
Print child(i);
Next i
Do
t = False
j = j + 1
tem = child(1) \ 2 + child(10) \ 2
For i = 10 To 2 Step -1
child(i) = child(i) \ 2 + child(i - 1) \ 2
If child(i) <> tem Then t = True
Next i
child(1) = tem
Loop While t
Print "当第" & j & "次分糖后所有孩子手上糖果数相等!每人手上有" & child(1) & "颗糖果!"
End Sub
2016年04月30日 11点04分 5
谢谢啊,我一定好好研究一下
2016年04月30日 14点04分
1