为了账号安全,请及时绑定邮箱和手机立即绑定

难理解,求详细的举例解答

乘阶的例子还看得懂,但是后面的汉诺塔,看不懂,也不但了解,能不能进一步详细解答,求高手,通俗易懂的举例!

正在回答

1 回答

汉诺塔整体思路就是运用递归函数:

#_*_ coding:utf-8 _*_

def move(n,a,b,c): #定义移动函数,将n个盘子,从a移动到c

    if n==1:            

        print a,'-->',c

        return           #只有1个盘子,直接将这个盘子从a移动到c

                              #当大于1时,开始引用递归函数,现将n个盘分为两部分:1个和n-1个,1个时候就按照上述直接移动

    move(n-1,a,c,b) #n-1个时,先将n-1个从a移动至b,就左边的函数(a,b,c位置变化,是因为函数定义

    print a,'-->',c     是将a移动c,所以要从a移动至b,b的位置要发现生变)

    move(n-1,b,a,c)  #这个就是将移动b的盘子移动到c,参数位置变化原因同上

move(4,'a','b','c')


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758625    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

难理解,求详细的举例解答

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信