Python小程式分享04 漢諾塔(遞迴)

2021-08-19 03:17:32 字數 1239 閱讀 5094

print(x, '--->', z) # 如果只有一層,直接從x移動到z

else:

hanoi(n-1, x, z, y) # 將前n-1個盤子從x移動到y上

print(x, '--->', z) # 將最底下的盤子從x移動到z上

hanoi(n-1, y, x, z) # 將y上的盤子移動到z上

n = int(input("請輸入漢諾塔的層數:"))

print("盤子搬運過程如下:")

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

>>>請輸入漢諾塔的層數:2

盤子搬運過程如下:a-

--> ba-

--> cb-

--> c

>>>請輸入漢諾塔的層數:5

盤子搬運過程如下:a-

--> ca-

--> bc-

--> ba-

--> cb-

--> ab-

--> ca-

--> ca-

--> bc-

--> bc-

--> ab-

--> ac-

--> ba-

--> ca-

--> bc-

--> ba-

--> cb-

--> ab-

--> ca-

--> cb-

--> ac-

--> bc-

--> ab-

--> ab-

--> ca-

--> ca-

--> bc-

--> ba-

--> cb-

--> ab-

--> ca-

--> c

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

漢諾塔程式

include stdio.h void move char x,char y 自定義move函式,用來將塊從起始柱子x移動到目標柱子y,這裡的x,y為形參,不代表具體哪根柱子 void hannuota int n,char a,char b,char c 自定義hannuota函式,這裡的a,b...

漢諾塔 小青蛙

漢諾塔的解法在於將問題分解 可以說漢諾塔只有三步 寫過程 def hanoi n,a,b,c param n 問題規模 param a 起始盤子 param b 路過盤子 param c 目標盤子 return if n 0 hanoi n 1,a,c,b 開啟冰箱門,把b當做目標盤子 print ...