汉诺塔 python 解法
将n个盘片从x 转移到z, y是中介。
可以分解符为3步:
- 将
x
上面n-1
个盘片转移到y
; - 将
x
最底部的盘片转移到z
; - 将
y
上的n-1
个盘片转移到z
;
step = 0
# x --> z
def hanoi(n, x, y, z):
if n == 1:
global step
step += 1
print('step ' + str(step) + ': ' + x + '-->' + z)
else:
hanoi(n-1, x, z, y)
hanoi(1, x, y, z)
hanoi(n-1, y, x, z)
hanoi(3, 'x', 'y', 'z')