汉诺塔的移动可以用递归函数非常简单地实现。
(源自廖雪峰Python3教程课后练习)
# -*- coding: utf-8 -*-
def move(n, a, b, c):
if n == 1:
print(a, '-->', c)#只有一个盘子时,直接从a移动到c
else:
move(n - 1, a, c, b)#大于一个盘子时,开始递归,首先将n-1个盘子从a移到辅助区b
move(1, a, b, c)#然后将最后一个大盘子从a移动到c
move(n - 1, b, a, c)#最后将原来移动到b的盘子移动到c
n = input('n?')
n = int(n)
move(n, 'A', 'B', 'C')