Python打印汉诺塔移动的步骤

<strong><span style="font-size:18px;">def move(n, a, b, c):
    if n == 1:
        print a, '-->', c
        return 
    
    move(n - 1, a, c, b)
    print a, '-->', c
    move(n - 1, b, a, c)
move(3, 'A', 'B', 'C')
</span></strong>


解题分析:

   我们可以将这个过程分为几步:

 

我们对柱子编号为a, b, c,将所有圆盘从a移到c可以描述为:

如果a只有一个圆盘,可以直接移动到c;

如果a有N个圆盘,可以看成a有1个圆盘(底盘) + (N-1)个圆盘,首先需要把 (N-1) 个圆盘移动到 b,然后,将 a的最后一个圆盘移动到c,再将b的(N-1)个圆盘移动到c。

因此打印如下:

《Python打印汉诺塔移动的步骤》

    原文作者: 汉诺塔问题
    原文地址: https://blog.csdn.net/u012965373/article/details/51096365
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞