共計 611 個字符,預計需要花費 2 分鐘才能閱讀完成。
下面是使用遞歸的方法來編寫漢諾塔程序的 Python 代碼:
def hanoi(n, source, target, auxiliary):
if n > 0:
# 將 n-1 個盤子從源柱子移動到輔助柱子
hanoi(n-1, source, auxiliary, target)
# 將第 n 個盤子從源柱子移動到目標柱子
print(f"Move disk {n} from {source} to {target}")
# 將 n-1 個盤子從輔助柱子移動到目標柱子
hanoi(n-1, auxiliary, target, source)
# 測試
n = 3 # 盤子的數(shù)量
hanoi(n, 'A', 'C', 'B')
請注意,此代碼僅打印出了每一步的移動,如果你希望將移動的步驟保存在列表中以便進一步操作,你可以將 print
語句替換為一個列表的追加操作。
這段代碼中的 hanoi
函數(shù)采用了四個參數(shù): n
表示要移動的盤子數(shù)量,source
表示源柱子,target
表示目標柱子,auxiliary
表示輔助柱子。函數(shù)首先將 n-1 個盤子從源柱子移動到輔助柱子,然后將第 n 個盤子從源柱子移動到目標柱子,最后再將 n-1 個盤子從輔助柱子移動到目標柱子。這個過程通過遞歸調(diào)用函數(shù)來實現(xiàn)。
在測試部分,我們將一個包含 3 個盤子的漢諾塔問題的解傳遞給 hanoi
函數(shù),并將源柱子命名為‘A’,目標柱子命名為‘C’,輔助柱子命名為‘B’。
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!
正文完