一、什么是汉诺塔问题
这个问题来源于印度。有三个金刚石塔,第一个从小到大摞着64片黄金圆盘。现在把圆盘按大小顺序重新摆放在最后一个塔上。并且规定,在小圆盘上不能放大圆盘,在三个塔之间一次只能移动一个圆盘。
二、代码实现
a = 'A'
b = 'B'
c = 'C'
def hanno(a,b,c,n):
if n == 1:
print("{}-->{}".format(a,c))
return None
if n == 2:
print("{}-->{}".format(a,b))
print("{}-->{}".format(a,c))
print("{}-->{}".format(b,c))
return None
hanno(a,c,b,n-1) #a->b 上半部分,从a移到b
print("{}-->{}".format(a,c)) #a->c 中间,从a移到c
hanno(b,a,c,n-1) #b->c 下半部分,从b移到c
hanno(a,b,c,4)