用Python完成漢諾塔

2021-09-24 04:18:38 字數 547 閱讀 3331

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個從大到小疊起來的盤子放到第三根棍子上。每一次只允許移動乙個,而且大的盤子永遠在小的盤子的下面。這也是非常著名的遞迴入門題。我們將通過呼叫三次遞迴函式來解決這個問題。暫時不考慮 只考慮解題。先...