请高手帮忙啊,小弟谢谢先,怎样排法才能依次扔入大海的是非教徒呢

来源:百度知道 编辑:UC知道 时间:2024/07/04 19:01:36
有15个教徒和15个非教徒在海上遇难必须将一半的人扔下海,于是,想到了个方法,30个人围成一圈,第一个人开始依次报数,把报13的人扔入大海,如此循环进行直到仅于15个人为止。问:怎样排法才能依次扔入大海的是非教徒呢。请高手帮忙啊,用VB编个程解答,小弟谢谢先,
谢谢高手的答案,可是你的公式还是有点问题,得出来的结果我对比了一下,还是不够,请再帮忙修正,谢谢

下面的代码..呵呵希望你能看懂呵... 依次打出来的序号,就是将被仍下去的人..

Private Sub Command1_Click()
Dim i%, j%, s(1 To 30)
For i = 1 To 30
s(i) = Format(i, "00")
Next
i = 0
Do
i = i + 1
Do
j = j + 1
If j > 30 Then j = 1
Loop Until s(j) <> ""
If i = 13 Then
Print s(j); " ";
s(j) = ""
i = 0
End If
Loop Until Len(Replace(Join(s), " ", "")) = 30
End Sub

===================================
把我的思路精减一下:
Private Sub Command2_Click()
Dim i%, j%, s(1 To 30)
For i = 1 To 30
s(i) = Format(i, "00")
Next
For i = 1 To 13 * 15
Do
j = j + 1
If j > 30 Then j = 1
Loop Until s(j) <> ""
If i Mod 13 = 0 Then Print s(j) & " ";: s(j) = ""
Next
End Sub

Private Sub Command1_Click()
Dim i%, j%, s(1 To 30)
For i = 1 To 30