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

自己的理解

看了半天评论,没半点毛用,还是靠自己查百度才懂得代码逻辑,我就想问,跟别人讲个逻辑这么难?  

move(n, a, b, c)

我先给每个参数定义一个性质

 n: 盘子数, a: 现在叫起点 b: 我给它叫中转站,不起作用,只是给a和c搭桥,做中间人 c: 尾点 

将盘子分为n和n-1整体,那现在我可以直接看成就只有两个盘子,直接操作 

1:先将n-1整体传到b,那么现在我可以认为现在a是起点,b成了尾点,c就成了中转站  =>move(n-1, a, c, b) 

2:将n传到c,那直接传就行 => print a, '=>', c 

3:最后将n-1整体传给c,与步骤1逻辑一样,b起点c尾点a中转站 => move(n-1, b, a, c)

* n=1是个例外,自己写个if语句给隔绝掉就行,至于n是否小于0,看自己心情写,我觉得没必要,现在讨论的是汉诺塔,是用来解决多塔型计算问题,肯定是有盘子啦,

正在回答

4 回答

终于有个能看得明白的

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

太谢谢你了,看了你的描述终于明白了

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

看你写的终于看懂了。。他们的评论表达真的难?

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

把原来代码定义公式中的abc,替换成其他字母 比如xyz  然后出结果之后对着看就很容易明白代码的逻辑了

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

举报

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

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

进入课程

自己的理解

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