实现上述功能的 VB程序如下:
(1)如果只有 10 只猴子参加本次选大王,则猴王最初的位置为:
(2)实现上述功能的 VB程序如下,请在划线处填入合适代码。
Private Sub Command1Click()
Dim n, x, m, s As Integer '假设参与的猴子数量不超过 5000
Dim a(1 To 5000) As Integer '用数组 a 存储每只猴子的报数,值为 3 时视同出列
Dim t, y As Boolean 't 用于循环,y 为 true 时表示报数顺序是从头到尾,y 为 false 时报数顺序 是从尾到头
n = Val(Text1.Text)
x = 1 'x 为每次猴子的位置
m = 1 'm 为报数的 1、2、3
y = True
t = True
Do While t
'该位置的猴子是否已经出列
If a(x) <> 3 Then '没有出列的,则报数
a(x) = m
①
If m > 3 Then m = 1
Else '每次有猴子报 3 出列之后,检查是否已经只有两只猴子没有出列
s = 0
For i = 1 To n
If ②
Next i
If s < 3 Then Exit Do
End If
If y = True Then x = x + 1 Else x = x - 1
'检查报数是在递增,还是递减,y 为 true 时递增
'报到最后一次猴子后
If x > n Then y = False: m = 1: x = n
'报到第一次猴子后
If x = 0 Then y = True: m = 1:
Loop
'输出猴王的位置
For i = 1 To n
③
If a(i) = 1 Then Label2.Caption = "猴王的位置为第" + Str(i) + " 只"
Next i
End Sub
同类型试题
y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2
y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2