作业帮 > 综合 > 作业

VB 有十七个人围成一圈(编号为0~16),第0号的人开始从1报数,凡报到3的倍数的人离开圈子,然后再数下去

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/12 22:17:02
VB 有十七个人围成一圈(编号为0~16),第0号的人开始从1报数,凡报到3的倍数的人离开圈子,然后再数下去
直到最后只剩下一个人为止.问此人原来的位置号是多少?
要的是程序!
VB 有十七个人围成一圈(编号为0~16),第0号的人开始从1报数,凡报到3的倍数的人离开圈子,然后再数下去
Private Sub Command1_Click()
    Form1.Cls
    Dim a(1 To 17) As Integer
    Dim i As Integer,j As Integer,k As Integer
    For i = 1 To 17
        a(i) = i - 1
    Next
    i = 0
    j = 0
    k = 17
    Do While k > 1
        For i = 1 To 17
            If a(i) > -1 Then
                j = j + 1
                If j = 3 Then
                    j = 0
                    Print a(i)
                    a(i) = -1
                    k = k - 1
                End If
            End If
        Next
    Loop
    Print "剩下的是:"
    For i = 1 To 17
        If a(i) > -1 Then
            Print a(i)
            Exit For
        End If
    Next
End Sub


再问: 可以讲解下不?不是太懂,尤其是-1那
再答: 程序首先将 0-16 填充数组 a() 然后循环地数 a() 的每个元素,如果 a(i) < -1 就忽略,否则 每数到 3(j = 3)就打印 a(i) 并将 a(i) 置为 -1。 其实就是用 -1 代替离开的人,下次循环不再数他
用VB编写程序,有17个人围成一圈(编号0~16),第0号的人开始从1报数,凡是报到3的倍数的人离开 2:有n个人围成一圈,顺序排号.从第一个人开始报数(从1到3报数),凡报到3的人退出圈子, C语言:有n人围成一圈,顺序排号.从第1个人开始报数(从1到3报数),凡报到3的人退出圈子, 有N个人围成一个圈顺序编号,从第一个人开始报数(从1到M),凡报到M的人退出圈子, 有10个人围成一圈,顺序排号.从第一个人开始报数(从1到3报数),凡报到了的人退出圈子,问最后留下的是原来第几号的那位. 用C语言编写:有n个人围成一圈,顺序排号.从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,请输出报数出列圈及最 C语言:有n个人围成一圈,顺序排号.从第一个人开始报数(从1到3报 数),凡报到3的人退出圈子 问最后留下 C语言:有n个人围成一圈,顺序排号.从第一个人开始报数(从1到3报 数),凡报到3的人退出圈子 C语言:有n个人围成一圈,按顺序从1到n编号.从第一个人开始报数,报数3的人退出圈子 C语言 有n个人围成一圈,按顺序从1到n编号.从第一个人开始报数,报数3的人退出圈子 、用指针完成下面程序:有n个人围成一圈,顺序排号,从第一个人开始报数(从1-3报数),凡报到3的退出圈子,请编程求出最后 请教用VC做:17个人围成一个圈,依次编号为1-17,从第1号开始报数,报到3的倍数的人离开,直到最后1人