|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
Private Sub Hanoi(ByVal n%, ByVal A$, ByVal B$, ByVal C$)
'在本例子过程中,在窗体上打印 “A → C” 来代表把金片从A针移动 '到C针,即1阶汉诺塔问题的解
If n = 1 Then
Cells(655360, 1).End(xlUp).Offset(1, 0) = n & ":" & A & "-" & C '把金片n从A移动到C
Else
' Hanoi n - 1, A, C, B 'n?1个金片从A到B,以C为过渡
Call Hanoi(n - 1, A, C, B)
' Print n; ": "; A; "→ "; C '把金片n从A移动到C
Cells(655360, 1).End(xlUp).Offset(1, 0) = A & "-" & C
'
' Hanoi n - 1, B, A, C 'n?1个金片从B到C,以A为过渡
' Cells(65536, 1).End(xlUp).Offset(1, 0) = n - 1 & B & A & C
Call Hanoi(n - 1, B, A, C)
End If
End Sub
Public Sub ll()
Call Hanoi(15, "A", "B", "C")
End Sub
能原封不动的抄,但灵活变通还不会 |
|