汉诺塔
的移动:
用Python编写move(n, a, b,c)函数,接收参数n,n表示3个柱子A、B、C中第1个柱子A的盘子数量,打印出把所有盘子从A借助B移动到C的方法;
#期待输出:
#A –> C
#A –> B
#C –> B
#A –> C
#B –> A
#B –> C
#A –> C
move(3,’A’, ‘B’, ‘C’)
- 把不是最下面的盘子都经过C移到B
- 把最下面的移动到C
- 把移动到B的盘子都经过A移动到C
代码:
def move(n,a,b,c):
if n == 1:
print(a,'-->',c) #递归结束条件
else:
move(n-1,a,c,b) #将n-1块移动至b
move(1,a,b,c) #将最大那块移动至c
move(n-1,b,a,c) #从n-1块开始,ab参数位置对调
n = int(input('请输入第一个柱子A的盘子数量:'))
print('n=%d时的移动路线:'%n)
move(n,'A','B','C')