Python 汉诺塔递归原理

# -*- coding: utf-8 -*-
# 递归的重点在于放弃,放弃理解和跟踪递归全程的企图,只理解递归两层之间的交接,以及递归的终结条件
def move(n, start, mid, end):  # n:盘子,start起始区,mid中转区,end终点区
   if n == 1:
      print('move', start, '-->', end)
   else:
      move(n-1, start, end, mid)  # 把除了最大的盘子之外的盘子借助end,从start移到mid
      move(1, start, mid, end)  # 将最大的盘子从start移到end
      move(n-1, mid, start, end)  # 将除了最大的盘子之外的盘子借助start,从mid移到end


move(3, 'A', 'B', 'C')

猜你喜欢

转载自blog.csdn.net/u013274257/article/details/84256853