递归思想的运用
1)以C盘为中介,从A杆将1至n-1号盘移至B杆;
(2)将A杆中剩下的第n号盘移至C杆;
(3)以A杆为中介;从B杆将1至n-1号盘移至C杆。
def hanoi(n,a,b,c):
if n >0:
hanoi(n-1,a,c,b)
print("moving from %s to %s" % (a,c))
hanoi(n-1,b,a,c)
hanoi(2,'A','B','C')
代码:
运行结果
总的来说:
一共就三步
- 把 A的n-1 号盘子移动到缓冲区
- 把1号从起点移到终点
- 然后把缓冲区B的n-1号盘子也移到终点