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

思考了一周,结果还是看答案才写出来的。

思考一周,自己亲自玩了疯狂汉诺塔的游戏,玩到了10层(用时半个小时才做完,正确步骤是1023步,我用了1110步,错了87步)。对这个游戏有了实际操作理解后,才进行编程。

当时觉得难点如下:

1、如何在移动的时候,还打印出正确的步骤。

2、开始觉得n是偶数和奇数,第一步移到的塔不一样。(偶数是b塔,奇数是c塔)。觉得是否要添加一个判断语句。

3、递归函数里,要写几个特例,开始我写到了n==1,n==2,n==3的三种情况。觉得应该分不了这么多。

4、递归函数里,要递归几次(就是要用到move几次?)。我是只用了一次,就是最后一个move(n-1,b,a,c)写对了。所以显示出来的步数少了,比如n=4时,才11步。

总结如下:

1、要想写出编程,必须亲自玩汉诺塔的游戏,至少玩到7层以上!

2、要自己尝试去写,不用直接看答案,思考过程比答案更痛苦,也更有趣!

3、关键之处在于递归里的第一个move(n-1,a,c,b)。意思是把 (n-1) 个圆盘移动到 b。这个move的动作之后需要最下面一个盘移动a-c,就是print a-->c。

4、之后再把b上面的盘移动回到c,就是move(n-1,b,a,c)

正在回答

1 回答

作为编程,直接理解提示,照写代码即可。

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

举报

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

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

进入课程

思考了一周,结果还是看答案才写出来的。

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