Module Module1
Sub Main()
'9个号码
Dim CircleString As String = "012345678"
'应报号码
Dim Number As Integer = 0
'正在报号的人在字符串的位置编号
Dim ExitIndex As Integer = 0
Console.WriteLine("现在有{0:####}个人", CircleString.Length - 1)
'如果圈内有两个人
While CircleString.Length > 2
'应报号码
Number = Number Mod 5 + 1
'下一个报数的人在字符串中的位置编号是上一个报数的人后面一个位置
ExitIndex = ExitIndex Mod (CircleString.Length - 1) + 1
Console.WriteLine("<{0:####}号报数{1:####}>", CircleString.Chars(ExitIndex), Number)
If Number = 5 Then
Console.WriteLine()
Console.WriteLine("{0:####}号退出了。", CircleString.Chars(ExitIndex))
CircleString = CircleString.Remove(ExitIndex, 1)
ExitIndex -= 1
Console.WriteLine("现在有{0:####}个人", CircleString.Length - 1)
End If
End While
Console.WriteLine("最后退出的人是:")
Console.Write(CircleString.Chars(1))
Console.Write("号")
Console.Read()
End Sub
End Module