Python漢諾塔問題例題

2022-09-01 14:33:22 字數 696 閱讀 1922

1 count =0

2def hanoi(n,src,dst,mid):#

n表示圓盤個數,src表示源柱子,dst表示目的柱子,mid表示過渡柱子

3global count #

定義的全域性變數,在函式內部使用global保留字

4if n==1:

5print("

{}:{}->{}

".format(1,src,dst))

6 count +=1

7else: #

將n-1個圓盤放在mid上,將最後乙個圓盤放在dst上

8 hanoi(n-1,src,mid,dst) #

呼叫兩次

9print("

{}:{}->{}

".format(n,src,dst))

10 count +=1

11 hanoi(n-1,mid,dst,src)

12 hanoi(3,"

a","

c","b"

)13print(count)

輸出為:

1:a->c

2:a->b

1:c->b

3:a->c

1:b->a

2:b->c

1:a->c

7

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