递归特点:
调用自身/有结束条件
示例:
递归实例:
步骤:
代码示例:
# 汉诺塔问题
# 盘子从A经过C移动到B
def hanoi_1(n, A, C, B):
if n > 0:
hanoi_1(n - 1, A, B, C) # 第一步
print(f"把第{n}个盘子从{A}移动到{B}") # 第二步
hanoi_1(n - 1, C, A, B) # 第三步
# 盘子从A经过B移动到C
def hanoi_2(n, A, B, C):
if n > 0:
hanoi_2(n - 1, A, C, B)
print(f"把第{n}个盘子从{A}移动到{C}")
hanoi_2(n - 1, B, A, C)
hanoi_1(3, "a", "b", "c")
print("*" * 30)
hanoi_2(3, "a", "b", "c")
执行结果:
递归总结:
python默认递归深度为1000
获取默认递归深度: sys.getrecursionlimit() 修改默认递归深度: sys.setrecursionlimit(n)
轻易不要改