汉诺塔问题 递归算法(参考答案)是不是这么个意思?def move(n, a, b, c): #move函数几个形式参数:第一个表示需要移动的圆盘数,第二个(不一定是a)表示准备移走的柱子,第三个表示过渡柱子,第四个参数表示目标柱子。 if n == 1: print (a,'-->',c) #这其实是只有一个圆盘需要从A到C的情况。所有递归,最终都是走到这一步。 return #这是结束递归,省略了None。没有这句的话,递归没办法结束。 move(n-1,a,c,b) #将A柱的n-1个盘移到B柱,这里毫无争议。注意形参顺序变化了。 print a,'-->',c #这句话才是第一个柱子的第n个圆盘移动到目标柱子。 move(n-1, b, a, c)) #过渡柱子B上(n-1)个圆盘B递归移动到目标柱子C
添加回答
举报
0/150
提交
取消