⑴起点与终点之间共有10 个站点(包括起点与终点),依次为站点1、站点2……、站点10。参赛选手均从起点(站点1)出发,最先恰好到达终点(站点10)的一组选手为胜;
⑵对“恰好到达终点”的界定。比赛前,参赛选手随机抽取一个行进方案,该方案由5个正整数(范围为1~6)组成,表示参赛选手整个行程分5 个阶段完成,并规定了每个阶段能行进的站点数。若某一阶段按所给站点数行进还未到达终点,则向前(终点方向)行进;若某一阶段按所给站点数行进超过终点,则要折回直至行进完所给站点数;前四个阶段不出现按所给站点数行进恰好到达终点的情况,直至行进满五个阶段,且第五阶段按所给站点数行进恰好到达终点,则称为“恰好到达终点”。如方案“3,1,6,4,3,”满足“恰好到达终点”,按该方案行进的过程如图a所示:
组织方为了验证设计方案,编写了如下VB 程序:在文本框Text1 中输入待检验的方案(输入1~6 范围内的整数并以逗号分隔,且以逗号结束。例如:“3,1,6,4,3,”),单击“验证”按钮Command1,判断方案是否能恰好到达终点。若能,在标签Label2中显示“可行方案!”;若不能,则显示“不可行方案!”。程序界面如图b所示。
Const n = 10
Private Sub Command1_Click( )
Dim a(1 To n)As Integer '表示每一个起点距离终点的站点数
Dim b(1 To 5)As Integer
Dim start As Integer, cnt As Integer, endsAs Integer
Dim i As Integer, j As Integer, c As String, sAs String
Dim flag As Boolean
s = Text1.Text: j = 1
For i = 1 To n
a(i) = n - i
Next i
For i = 1 To Len(s)
c = Mid(s, i, 1)
If c = "," Then
Else
b(j) = Val(c)
End If
Next i
cnt = 1: flag = True
start = 1: ends = 0
i = 1
Do While flag = True And i <= 5
If b(i) = a(start) Then
flag = False
Else
ends = start + b(i)
start = adjust(ends)
cnt = cnt + 1
End If
i = i + 1
Loop
If Then
Label2.Caption = "可行方案!"
Else
Label2.Caption = "不可行方案!"
End If
End Sub
'adjust函数的作用是:根据参数ends的值来调整start的值
Function adjust(endsAs Integer) As Integer
Dim start As Integer
If ends < n Then start = ends Else start =
adjust = start
End Function