首页 > 编程语言 > 详细

python中汉诺塔的递归算法详解

时间:2017-07-21 13:51:01      阅读:476      评论:0      收藏:0      [点我收藏+]

请编写move(n, a, b, c)函数,它接收参数n,表示3个柱子A、B、C中第1个柱子A的盘子数量,然后打印出把所有盘子从A借助B移动到C的方法,例如:

                        def move(n, a, b, c):

                            pass

答案:

def move(n,a,b,c):
  if n==1:
    print(a,‘->‘,c)
   else:
    move(n-1,a,c,b)
    move(1,a,b,c)
    move(n-1,b,a,c)
理解的关键不需要管每一步是怎么解决的。重点是实现你的目的。我们可以这么理解:

move(n,起点,缓冲区,终点)
 
我们的步骤是把上面n-1个盘子搬到缓冲区move(n-1,a,c,b),
然后把最大的盘子搬到终点去move(1,a,b,c)
最后缓存区变成了起点,起点变成了缓冲区。move(n-1,b,a,c)
 

python中汉诺塔的递归算法详解

原文:http://www.cnblogs.com/jacky-j/p/7217126.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!