python实现汉诺塔

经典递归算法汉诺塔分析:

  1. 当A柱子只有1个盘子,直接A --> C
  2. 当A柱子上有3个盘子,A上第一个盘子 --> B, A上最后一个盘子 --> C, B上所有盘子(1个) --> C
  3. 当A柱子上有那个盘子,A上n-1个盘子 --> B,A上最后一个盘子 --> C, B上所有盘子(n-1个)--> C 规律:
  4. 当有1个盘子时,A(1) --> C
  5. 当有n个盘子时,A(n-1)--> B, A(1)--> C, B(n-1) --> C
def move(n, a, b, c):
    if n == 1:
        print('%s --> %s' % (a, c)) # 只有1个盘子,A --> C
    else:
        move(n-1, a, c, b) # 有n个盘子,借助于C,A(n-1) --> B
        move(1, a, b, c) # 有n个盘子,A(1) --> C
        move(n-1, b, a, c) # 有n个盘子,借助于A,B(n-1) --> C
原文地址:https://www.cnblogs.com/seastar1989/p/5687995.html