答案里形参顺序为什么变化了?
move (n-1, a, c, b)
print a, ‘--', c 这部分还在定义?
move (n-1, a, c, b)
print a, ‘--', c 这部分还在定义?
2017-10-13
汉诺塔讲究大小顺序,小的在上大的在下,要把n个盘子从a柱移到c柱就是move(n,a,b,c)。注意函数里面的4个参数:第一个参数(n)代表的是盘子个数,第二个参数(a)的位置代表的是起始柱,第三个参数(b)代表的是过渡柱,最后一个参数(c)代表的是目标柱。
你不要想具体的移动的步骤,抽象来想:
第一步就是把n-1个小盘子移到b,第二步是把a柱上的最大的盘子移到c,最后是把b柱上n-1个盘子移到c
所以第一步就是move(n-1,a,c,b) ,这个参数代表把n-1个盘子从a起始柱移到b目标柱,c就当是个过渡的柱子
第二步就是print a,'-->',c ,这个表示把a起始柱上的一个盘子移到c
最后一步move(n-1,b,a,c),表示把b起始柱上的n-1个盘子移动到c上
举报