问题:编程实现把 A 的 n 个盘子移动到 C(盘子编号是 [1, n] )
每次只能移动1个盘子
大盘子只能放在小盘子下面
(1)当n==1时,直接从A移动到C即可
(2)当有n>1时,分三个步骤:
1.将n-1个盘子,经过C移动到B,
2.将编号为n个盘子移动到C
3.将n-1个盘子从B移动到C
经过分析发现,步骤1,和3为递归调用的过程 ,为原问题递归的子问题
3.Python代码实现def hanoi(n, a, b, c):
#递归终止条件n=0
if n>0:
hanoi(n-1, a, c, b)
print("moving from %s to %s" % (a, c))
hanoi(n-1, b, a, c)
hanoi(3, 'A', 'B', 'C')


