递归实例
1. 汉诺塔
def hanoi(n, a, b, c):
"""
汉诺塔:最终目的是把a柱子上的盘子移动到c上,b作为缓冲
:param n: 一共拥有的块数
:param a: 原柱
:param b: 缓冲
:param c: 目的柱
:return:
"""
if n == 1:
# 一个时直接移动到目的柱
print(a, '-->', c)
else:
# 先想办法把n-1个从a移动到b
hanoi(n - 1, a, c, b)
# 第一次绝对是从a移动到c
print(a, '-->', c)
# 再想办法把n-1个从b移动到c
hanoi(n - 1, b, a, c)
# 调用此递归函数
hanoi(5, 'A', 'B', 'C')