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

汉诺塔 递归问题 算法是不是这样的?

汉诺塔 递归问题 算法是不是这样的?

码农的自我修养 2015-12-14 22:11:30
汉诺塔问题 递归算法(参考答案)是不是这么个意思?def move(n, a, b, c):   #move函数几个形式参数:第一个表示需要移动的圆盘数,第二个(不一定是a)表示准备移走的柱子,第三个表示过渡柱子,第四个参数表示目标柱子。     if n == 1:            print (a,'-->',c) #这其实是只有一个圆盘需要从A到C的情况。所有递归,最终都是走到这一步。            return #这是结束递归,省略了None。没有这句的话,递归没办法结束。     move(n-1,a,c,b) #将A柱的n-1个盘移到B柱,这里毫无争议。注意形参顺序变化了。     print  a,'-->',c  #这句话才是第一个柱子的第n个圆盘移动到目标柱子。     move(n-1, b, a, c)) #过渡柱子B上(n-1)个圆盘B递归移动到目标柱子C
查看完整描述

1 回答

  • 1 回答
  • 1 关注
  • 1659 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信