自己的理解
看了半天评论,没半点毛用,还是靠自己查百度才懂得代码逻辑,我就想问,跟别人讲个逻辑这么难?
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,看自己心情写,我觉得没必要,现在讨论的是汉诺塔,是用来解决多塔型计算问题,肯定是有盘子啦,