少淑品牌有哪些:字典与数组 vba(第二例)

来源:百度文库 编辑:中财网 时间:2024/04/28 19:44:31
字典与数组 vba(第二例) 

题目:100人,从1到100标上号码,围成圆圈,从1开始报数,报到10的那人退出,然后从那人的下一个开始循环报数,直到最后一人,求依次退出人员的序号

jackierobin的解法:

Sub test()
t = Timer
Dim i&, n&, S$
'创建1到100 的数组
Set D = CreateObject("Scripting.Dictionary")
For i = 1 To 100
D(i) = " " & i
Next
n = 1
JACKIE:
'循环 d的数组 取消第10个子项
For Each CC In D.keys
   If n = 10 Then
   S = S & D(CC)
   D.Remove (CC)
   n = 0
   End If
   n = n + 1
Next
' d数组格式 不为0 返回循环
If D.Count <> 1 Then GoTo JACKIE

' d数组格式的一条项目
M = D.ITEMS
MsgBox "总用时" & Format(Timer - t, "0.00000") & "秒"
   MsgBox "依次提出数为" & S & "最后留下的是 " & M(0)
End Sub