python處理漢諾塔問題

2021-10-23 15:20:46 字數 882 閱讀 9348

問題描述

請看上圖,要將a柱中的盤子移動到另一根柱子上。

移動時要滿足以下兩個條件

問:如果有四個盤子需要移動幾次?

num =

0# 用於計數

# height 為盤子數量

defmovetower

(height, frompole, topole, withpole)

:if height >=1:

movetower(height -

1, frompole, withpole, topole)

# 搬運

movedisk(frompole, topole)

# 格外注意三柱之間的位置關係

movetower(height -

1, withpole, topole, frompole)

defmovedisk

(fp, tp)

:global num

num = num +

1print

("moving disk from"

, fp,

"to"

, tp)

# 如果有四個盤子三個柱子

movetower(4,

"a",

"b",

"c")

print

("總共移動了"

, num,

"次")

效果

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 ...

python 漢諾塔問題

最近被漢諾塔的python 遞迴給迷暈,本想搞個程式除錯,但sublimetext用的不是很熟,參考了很多大佬的博文,需要總結下以防往後忘記 關於理解 流程,其實主要關注兩點 1 形參實參注意別搞混了 2 函式呼叫後都是要返回的,從哪個入口進去執行最後執行完程式是要返回回原來的入口,再執行時要注意開...

漢諾塔問題(python)

def hanoi n,a,b,c 將n個圓盤從a經過b移到c if n 0 圓盤數大於0 hanoi n 1,a,c,b 將n 1個圓盤從a經過c移到b print format a,c 將a上最底部的圓盤移到c hanoi n 1,b,a,c 將n 1個圓盤從b經過a移到c hanoi 3,a ...