试题

试题 试卷

logo

题型:综合题 题类:常考题 难易度:普通

【bj】高中信息技术综合库——枚举算法2

(加试题)小李同学碰到了一个数学问题:400个同学按顺序进行编号后围成一个大圈,按1至2报数(从1号位置开始),报到2的同学出列,以此一直循环报数下去,问最后剩下的那位同学他的编号是几号?

例如以6个同学编号为例,按1至2报数(从1号位置开始)依次出列的编号次序为2-4-6-3-1-5,那么最后剩下的就是编号为5的同学。

为了解决这个问题,小李用VB编写了如下程序尝试解决,其中列表list1显示出列的顺序编号,文本框text1中显示最后留下的编号,程序代码如下(测试界面如下图):

Private Sub Command1_Click()

    Dim s, f, t As Integer

    Dim a(1 To 400) As Boolean

    For i = 1 To 400

        a(i) = False

    Next i

    s = 0

    f = 0

    i = 0

    Do While f < 399

        i = i + 1

        If i = 401 Then i =

        If a(i) = False Then s = s + 1

        If s = 2 Then

             

            List1.AddItem Str(i)

            a(i) = True

            f =  

        End If

    Loop

    For i = 1 To 400

        If   Then text1.text=str(i)

    Next i

End Sub

在程序划线处填入合适的代码。

举一反三
返回首页

试题篮