漢諾塔的移動可以用遞歸函數非常簡單地實現。


請編寫move(n, a, b, c)函數,它接收參數n,表示3個柱子A、B、C中第1個柱子A的盤子數量,然后打印出把所有盤子從A借助B移動到C的方法,例如:


 

#首先引入遞歸函數的思想,在漢諾塔大柱子必須在下規則的基礎上,把整個過程看作是三個主要步驟(將n-1個環看作是一個整體):
#1 把n-1個環從A柱放在B柱子上: move(n-1, a, c, b)
#2 把最大的環從A柱放在C柱子上: move(1,a,b,c)
#3 把n-1個環再從B柱子上轉移到C柱子上: move(n-1,b,a,c)

# -*- coding: utf-8 -*- def move(n, a, b, c):
if n == 1:
print(a,"-->",c)
else:
move(n-1, a, c, b) 
move(1,a,b,c) 
move(n-1,b,a,c)

漢諾塔模型


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM