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

汉诺塔问题

move (n-1,a,c,b)
        print a,'-->',c
        move (n-1,b,a,c)

为什么move里面的abc顺序改变了   不太懂

正在回答

2 回答

a,b,c可以理解为a为初始位置,b为中转位置,c为目标位置

当一个层数为n的汉诺塔移动时可以分解为三步,

第一步,将n-1层的汉诺塔移动到b位置,起始位置为a,目标位置为b

第二步,将最下面一层,移动到c位置,起始位置为a,目标位置为c

第三步,将n-1层塔移动到c位置,起始位置为b,目标位置为c

因为起始位置、中转位置、目标位置变了,所以要相应的改变

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

(简单说:move种的第二个元素是提走圆盘的地方,第四个元素是放置托盘的地方)

第一步:把A上的n-1个圆盘放到B上。所以b和c需要对调

第二步:a-->c

第三步:将b上的n-1圆盘一直到c

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

举报

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

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

进入课程

汉诺塔问题

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