×

关注微信公众号

选猴王VBA代码分享!

2012-7-16 01:24| 发布者: 温强| 查看: 12367| 评论: 0

选猴王”,意思是说一群猴子有N只,坐在一起选猴王,每只猴子都有一个编号1~N。从1号猴子开始报号,报到M号则退出;下只猴子继续从1开始报,依次循环,则最后的一只猴子为猴王。试求出这只猴子的编号。


模型如下:(猴子总数:50,数到第7只猴子退出!)
 

我给出其中的一种解题代码如下(适合求任意猴子数)

Public Sub xhz()
Cells.Clear
zs = Val(InputBox("请输入猴子的总数!"))
cj = Val(InputBox("请输入第几只猴子出局!"))
For i = 1 To zs
Cells(i, 1) = i
Cells(i, 2) = 1
Next
h = 1
Do While Application.WorksheetFunction.Sum(Range("b1:b" & zs)) > 1
m = 0
Do While m <> cj
m = Cells(h, 2) + m
h = h + 1
If h > zs Then h = 1
Loop
If h <> 1 Then
Cells(h - 1, 2) = 0
Else
Cells(zs, 2) = 0
End If
Loop
For jg = 1 To zs
If Cells(jg, 2) = 1 Then
MsgBox "第" & Cells(jg, 1) & "个猴子是猴王!"
Exit For
End If
Next jg
Cells.Clear
End Sub
报名咨询 关注微信 在线报名 返回顶部