steps = 0 #計算步數,一共移動幾次完成
def hanoi(src, mid, des, n): #這個函式接收abc三個柱子和圓盤個數n
global steps #將steps作為全域性變數
if n == 1: #如果圓盤只有乙個的話一部就完成了
steps += 1
print("[step] {}->{}".format(steps, src, des)) #直接將圓盤從a移動到c
else:
hanoi(src,des,mid,n - 1) #第一步,將a上的圓盤全部移動到b
steps += 1
print("[step] {}->{}".format(steps, src, des))
hanoi(mid,src,des,n - 1) #第二部,將b上的圓盤全部移動到c
n = eval(input()) #n是幾階的漢諾塔,就是一共有幾個可移動的圓盤
hanoi("a", "b", "c", n)
python 漢諾塔 Python漢諾塔
import turtle class stack def init self self.items def isempty self return len self.items 0 def push self,item def pop self return self.items.pop def ...
使用turtle模組完成漢諾塔
python2.6版本中後引入的乙個簡單的繪圖工具,叫做海龜繪圖 turtle graphics turtle庫是python的內部庫。turtle庫 漢諾塔import turtle defdraw post 畫三個柱子 h.speed 0 h.up h.left 90 h.pensize 10 ...
漢諾塔問題python詳解 《簡單分析》漢諾塔問題
漢諾塔是乙個非常著名的遊戲,遊戲中將會有三根棍子,第一根棍子上有n個從大到小疊起來的盤子,遊戲的目標是將這n個從大到小疊起來的盤子放到第三根棍子上。每一次只允許移動乙個,而且大的盤子永遠在小的盤子的下面。這也是非常著名的遞迴入門題。我們將通過呼叫三次遞迴函式來解決這個問題。暫時不考慮 只考慮解題。先...