有N个小朋友手拉着手围成一个环,假设每个小朋友都有自己的代号,从A开始,比如第一个小朋友代号为A,在这个小朋友右边的为B,依此类推。
假设从A小朋友开始数起(包括他自己),往右边数指定的一个数,比如4,那个意味着,代号为D的小朋友离开这个环,其它的人再围成一个环,这时再从E小朋友开始数指定的这个数,不断循环,直到最后一个小朋友出环。
写一个VB程序,先输入多少个小朋友,再输入要数的数,计算出各个小朋友先后出环的顺序。(比如输入4个小朋友,那么这四个小朋友的代码为A,B,C,D,由程序生成)
以下是我做的,请教大家哪里错了
Option Explicit
Option Base 1
Dim Ren() As String
Dim i As Integer, j As Integer, m As Integer, n As Integer
Private Sub Command1_Click()
Form1.Cls
i = Val(InputBox("输入总人数(1~10):", , 10))
If i > 26 Or i = 0 Then
MsgBox "error!"
Exit Sub
End If
ReDim Preserve Ren(i)
For m = 1 To i
Ren(m) = Chr(m + 64)
Next
j = Val(InputBox("指定数字(1~" & i & "):", , 1))
If j > i Or j = 0 Then
MsgBox "error!"
Exit Sub
End If
n = 1
Do
n = n - 1
For m = 1 To j
n = n + 1
If n > i Then n = 1
Next
Print Ren(n)
For m = n To i - 1
Ren(m) = Ren(m + 1)
Next
i = i - 1
If i = 0 Then Exit Do
Loop
End Sub