首先要认识到汉诺塔的目标:将A柱上的N个盘子移动到C柱子上。
我们可以运用递归的思想,就是把这个总目标分解成三个子目标:
子目标1: 将前n-1个盘子从A柱移动到B柱上
子目标2: 将最底下的最后一个盘子从A柱移动到C柱上
子目标3: 将B柱上的n-1个盘子移动到C柱上
然后每一个子目标又可以看作一次独立的汉诺塔游戏,可以继续分解直到N为1。
以下为代码实现:
1 | def move(n, a, b, c): |
首先要认识到汉诺塔的目标:将A柱上的N个盘子移动到C柱子上。
我们可以运用递归的思想,就是把这个总目标分解成三个子目标:
子目标1: 将前n-1个盘子从A柱移动到B柱上
子目标2: 将最底下的最后一个盘子从A柱移动到C柱上
子目标3: 将B柱上的n-1个盘子移动到C柱上
然后每一个子目标又可以看作一次独立的汉诺塔游戏,可以继续分解直到N为1。
以下为代码实现:
1 | def move(n, a, b, c): |