谁能够告诉我汉洛塔的迭代代码啊?????

解决方案 »

  1.   

    'add a listbox to form1
    Private Sub Command1_Click()
     MOVEALL 13, 12, "A", "B", "C"
    End Sub
    Sub MOVEALL(ByVal TOTAL As Long, ByVal N As Long, ByVal A As String, ByVal B As String, ByVal C As String)'move the top n of total from A pass B to C
    If N = 1 Then
     MOVEONE TOTAL, 1, A, C
    Else
     MOVEALL TOTAL, N - 1, A, C, B
     MOVEONE TOTAL, N, A, C
     MOVEALL TOTAL, N - 1, B, A, C
    End If
    End SubSub MOVEONE(ByVal TOTAL As Long, ByVal N As Integer, ByVal X As String, ByVal Y As String)
    List1.AddItem "STEP " & List1.ListCount + 1 & ": " & Space(Len(str(2 ^ TOTAL - 1)) - Len(str(List1.ListCount + 1))) & " MOVE " & N & " FROM " & X & " TO " & Y
    End Sub