注册 登录
编程论坛 VB.NET论坛

求助:如何用vb解决约瑟夫回环问题??

voilet3093 发布于 2009-11-07 21:00, 841 次点击
约瑟夫回环问题:设有m个人围坐成一圈,从某人的下一位开始计数,数到n则该人出圈;从他的下一位开始再行计数,数到n者出圈,这样重复进行,直至剩下1人为止,要求输出出圈者的顺序号和剩下者的顺序号。
是利用顺序输出做吧  可是不知道具体的代码该怎么写  大家帮帮忙哈~~~谢谢~~
1 回复
#2
sywzs2009-11-09 13:31
        Dim N As Integer = 6
        Dim cM As String = "ABCDEFGH"
        Dim cMM As String = ""
        Dim cSX As String = ""
        Dim C As String
        Do
            Do While Len(cM) < N
                cM += cM
            Loop
            C = Mid(cM, N, 1)
            cSX += C
            cM = Mid(cM, N + 1) + Mid(cM, 1, N - 1)
            Do While InStr(cM, C) > 0
                cM = Mid(cM, 1, InStr(cM, C) - 1) & Mid(cM, InStr(cM, C) + 1)
            Loop
            cMM = cM
            Do While Len(cMM) > 1
                If Mid(cMM, 1, 1) = Mid(cMM, 2, 1) Then
                    cMM = Mid(cMM, 2)
                Else
                    Exit Do
                End If
            Loop
            If Len(cMM) = 1 Then
                Exit Do
            End If
        Loop
        cSX += cMM    '注: cSX 就是所求的结果
1