(加试题)小李同学碰到了一个数学问题:400个同学按顺序进行编号后围成一个大圈,按1至2报数(从1号位置开始),报到2的同学出列,以此一直循环报数下去,问最后剩下的那位同学他的编号是几号?
例如以6个同学编号为例,按1至2报数(从1号位置开始)依次出列的编号次序为2-4-6-3-1-5,那么最后剩下的就是编号为5的同学。
为了解决这个问题,小李用VB编写了如下程序尝试解决,其中列表list1显示出列的顺序编号,文本框text1中显示最后留下的编号,程序代码如下(测试界面如下图):

Private Sub Command1_Click()
Dim s, f, t As Integer
Dim a(1 To 400) As Boolean
For i = 1 To 400
a(i) = False
Next i
s = 0
f = 0
i = 0
Do While f < 399
i = i + 1
If i = 401 Then i =
(1) If a(i) = False Then s = s + 1
If s = 2 Then
(2) List1.AddItem Str(i)
a(i) = True
f =
(3) End If
Loop
For i = 1 To 400
If
(4) Then text1.text=str(i)
Next i
End Sub
为实现程序功能,在程序划线处应填入的代码为:
(1) _________________
(2) _________________
(3) _________________
(4) _________________