汉诺塔的移动函数

汉诺塔 的移动:

用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')



  1. 把不是最下面的盘子都经过C移到B
  2. 把最下面的移动到C
  3. 把移动到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')



你可能感兴趣的:(数据结构与算法,Python)