1、什么是汉诺塔?
2、递归实现汉诺塔移动步骤
def fn(n:int, a:str, b:str, c:str) -> None:
'''
:param n: 用移动圆盘的数量
:param a: 第一个根柱子
:param b:第二根柱子
:param c:第三根柱子
:return: 返回空值
'''
if n == 1:
print(a, '-->', c)
else:
fn(n-1, a, c, b)
fn(1, a, b, c)
fn(n-1, b, a, c)
fn(5, 'A', 'B', 'C')
结果如下:
Help on function fn in module __main__:
fn(n:int, a:str, b:str, c:str) -> None
:param n: 用移动圆盘的数量
:param a: 第一个根柱子
:param b:第二根柱子
:param c:第三根柱子
:return: 返回空值
A --> C
A --> B
C --> B
A --> C
B --> A
B --> C
A --> C
Process finished with exit code 0