⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 汉诺塔.frm

📁 算法教案
💻 FRM
字号:
VERSION 5.00
Begin VB.Form Form1 
   Caption         =   "汉诺塔问题"
   ClientHeight    =   3960
   ClientLeft      =   60
   ClientTop       =   450
   ClientWidth     =   5940
   LinkTopic       =   "Form1"
   ScaleHeight     =   3960
   ScaleWidth      =   5940
   StartUpPosition =   3  '窗口缺省
   Begin VB.TextBox Text1 
      Height          =   375
      Left            =   3840
      MultiLine       =   -1  'True
      TabIndex        =   3
      Top             =   960
      Width           =   1095
   End
   Begin VB.CommandButton Command1 
      Caption         =   "计算"
      Height          =   375
      Left            =   3840
      TabIndex        =   2
      Top             =   2040
      Width           =   1095
   End
   Begin VB.ListBox List1 
      Height          =   2940
      ItemData        =   "汉诺塔.frx":0000
      Left            =   240
      List            =   "汉诺塔.frx":0002
      TabIndex        =   0
      Top             =   360
      Width           =   3135
   End
   Begin VB.Label Label1 
      Caption         =   "输入盘片数"
      Height          =   375
      Left            =   3840
      TabIndex        =   1
      Top             =   360
      Width           =   1095
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim num As Long

Sub hanoi(n As Integer, a As String, c As String, b As String) 'Hanoi过程四个参数分别是N个盘数,源柱,目标柱,帮助柱,过程的意思是将N个盘从源柱搬动到目标柱通过帮助柱帮助下。
    If (n = 1) Then                                       '当只有一个盘时
       num = num + 1
       List1.AddItem (Str(num) + ":" + a + "->" + c)      '搬动一个盘从源柱到目标柱
    Else
        Call hanoi(n - 1, a, b, c)                         '搬动N-1个盘从A柱到B柱,在C柱帮助下
        num = num + 1
        List1.AddItem (Str(num) + ":" + a + "->" + c)
        Call hanoi(n - 1, b, c, a)                        '搬动N-1个盘从A柱到B柱,在C柱帮助下
    End If
End Sub

Private Sub Command1_Click()
   Dim n As Integer
   n = Val(Text1.Text)
   Call hanoi(n, "A", "C", "B")       '将N个盘从源柱A柱搬动到目标柱C柱在帮助柱B柱帮助下
   List1.AddItem ("共" + Str(num) + "次")
End Sub

Private Sub Text1_Click()
  num = 0
  List1.Clear
  Text1.Text = ""
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -