python 漢諾塔遞迴實現

2021-09-12 06:34:12 字數 376 閱讀 4422

def move(from,to): #將盤子從from移動到to,動畫效果需要腦補

print(from,'->',to)

def hanoi(n,src,tmp,dst):#將n個盤子從src搬到dst

if n == 1: #只有乙個盤子的情況

move(src,dst)

else: #有乙個以上盤子的情況

hanoi(n-1,src,dst,tmp) #將上方的n-1個盤子從src搬到tmp

move(src,dst) #將第n個盤子從src輕鬆愉快地移動到dst

hanoi(n-1,tmp,src,dst) #擦屁股,將tmp上的n-1個盤子搬到dst上

hanoi(3,'a','b','c')

python遞迴實現漢諾塔

實現思路 1.將a上 n 1個移動到b 2.將a上最後乙個移動到c 3.將b上 n 1個移動到a 4.將b上最後乙個移動到c 重複上面步驟即可 python 實現如下 全域性變數cnt 統計移動次數 global cnt cnt 0 def move x,y global cnt 再次宣告,表示在這...

漢諾塔遞迴 Python

今天繼續學習遞迴 終於 終於把 去年學c語言沒看懂也沒去研究的漢諾塔解決了 感謝網上眾多的老鐵們的資料相助 和 宿舍學長的幫助,好了以下說理解後的思路 1 n 1 第1次 1號盤 a csum 1 次 2 n 2 第1次 1號盤 a b 第2次 2號盤 a c 第3次 1號盤 b c sum 3 次...

Python實現遞迴函式 漢諾塔

def move a,b,c,n if n 1 print a,c else move a,c,b,n 1 print a,c move b,a,c,n 1 move a b c 3 以上為python 實現漢諾塔遞迴問題,關於程式過程,可以根據以下三幅圖作為輔助理解 1 當只有乙個盤子的時候,只需...