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

两个print怎么实现了打印所有步骤?

我知道这代码的意思,先将n-1个移动到中转柱上,再将第n个移动到目的柱上。

n-1个饼一直重复执行move直到为1才能return。return后回到刚刚停下的地方继续执行下去。就这样通过2个print得到了15个步骤。

可是怎么想也想不通为什么这两个print就能打印出全部的步骤。

我484蠢- -

                                


正在回答

2 回答

我觉得不对,你返回第一次执行的话,return,直接函数就结束了,只print一个a--b

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

最笨也是最简单的方法:自己写出每一步执行步骤和结果就可以了。

例如move(2, a, b, c)运行的时候:

    第一层if不满足,执行else,move(1, a, c, b),进入第二层

    第二层if满足,打印a-->b(注意参数不是最开始的abc,而是第一层里面的acb了),返回

    第一层继续执行,打印a-->c

    第一层继续执行,执行move(1, b, a, c),进入第二层

    第二层if满足,打印b-->c(注意参数又变成了第一层的bac),返回

用笨办法做过一遍以后,就发现print没问题,只不过是每次递归调用时参数的位置变了而已。笨办法虽然麻烦,但其实是可以加深对知识理解深度的。这套教程写得不错,但练习设置得都太简单,学员缺少练手的机会,容易眼高手低,要知道光靠“看”是学不会“写”程序的。

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

风在发端Ali

我看懂都参考代码都有点吃力,需要看各位的解释才能懂。。是不是有点蠢。。不适合学这个啊
2016-01-21 回复 有任何疑惑可以回复我~
#2

慢慢懂你的故事

非常感谢
2016-10-29 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

两个print怎么实现了打印所有步骤?

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