# 在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数

# 计算阶乘n! = 1 x 2 x 3 x ... x n,用函数fact(n)表示,可以看出:

# fact(n) = n! = 1 x 2 x 3 x ... x (n-1) x n = (n-1)! x n = fact(n-1) x n


# 使用递归函数的优点是逻辑简单清晰,缺点是过深的调用会导致栈溢出。

def fact(n):
    if n==1:
        return 1
    return n * fact(n-1)
print('fact(1) =', fact(1))
print('fact(5) =', fact(5))
print('fact(10) =', fact(10))


# 利用递归函数移动汉汉诺塔:
def move (n, a, b, c):
    if n == 1:
        print('move', a, '-->', c)

    else:
        move(n-1, a, c, b)
        move(1, a, b, c)
        move(n-1, b, a, c)
move(4, 'A', 'B', 'C')

 

相关文章:

  • 2021-08-12
  • 2021-11-03
  • 2021-12-28
  • 2022-12-23
  • 2022-12-23
  • 2021-11-03
  • 2018-03-20
  • 2021-09-07
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-29
  • 2021-09-01
  • 2021-08-01
  • 2021-12-22
相关资源
相似解决方案