2017年5月2日 星期二

Z2A河內塔範例

4/26中午加強,Z2A三位學生到課
Vb2010 -Windows Form專案: 一個按鈕、一個文字方塊,以debug.print輸出至即時運算視窗
程式碼如下:
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim n As Integer = TextBox1.Text
        ho(n, "A", "B", "C")
    End Sub

    Sub ho(ByVal n As Integer, ByVal a As Char, ByVal b As Char, ByVal c As Char)
        If n = 1 Then
            Debug.Print(n & ":" & a & c)
            Return
        End If
        ho(n - 1, a, c, b)
        Debug.Print(n & ":" & a & c)
        ho(n - 1, b, a, c)
    End Sub
輸出範例:
輸入 4 的輸出如下
1:AB
2:AC
1:BC
3:AB
1:CA
2:CB
1:AB
4:AC
1:BC
2:BA
1:CA
3:BC
1:AB
2:AC
1:BC

輸入 5 的輸出如下
1:AC
2:AB
1:CB
3:AC
1:BA
2:BC
1:AC
4:AB
1:CB
2:CA
1:BA
3:CB
1:AC
2:AB
1:CB
5:AC
1:BA
2:BC
1:AC
3:BA
1:CB
2:CA
1:BA
4:BC
1:AC
2:AB
1:CB
3:AC
1:BA
2:BC
1:AC

0 意見:

張貼留言