guotianbao

Python实现递归

def fact(n):
    if n == 0:
        return 1
    else:
        return n * fact(n-1)

尾递归

def print_num_recursive(n):
    if n > 0:
        print_num_recursive(n-1)
        print(n)


def print_num_recursive_revserve(n):
    if n > 0:
        print(n)
        print_num_recursive_revserve(n-1)    # 尾递归

汉诺塔问题

有三根杆子A,B,C。A杆上有N个(N>1)穿孔圆盘,盘的尺寸由下到上依次变小。要求按下列规则将所有圆盘移至C杆: 但是有两个条件, 每次只能移动一个圆盘、大盘不能叠在小盘上面

def hanoi_move(n, source, dest, intermediate):
    if n >= 1:  # 递归出口,只剩一个盘子
        hanoi_move(n-1, source, intermediate, dest)
        print("Move %s -> %s" % (source, dest))
        hanoi_move(n-1, intermediate, dest, source)
hanoi_move(3, \'A\', \'C\', \'B\')

# 输出,建议你手动模拟下。三个盘子 A(Source), B(intermediate), C(Destination)
"""
Move A -> C
Move A -> B
Move C -> B
Move A -> C
Move B -> A
Move B -> C
Move A -> C
"""

分类:

技术点:

相关文章:

  • 2021-07-19
  • 2021-09-07
  • 2022-01-12
  • 2021-05-19
  • 2021-08-05
  • 2021-07-22
  • 2021-07-10
  • 2021-09-20
猜你喜欢
  • 2021-09-07
  • 2021-09-07
  • 2021-09-07
  • 2021-10-08
  • 2021-05-06
  • 2021-05-27
相关资源
相似解决方案