汉诺塔hanio(n,a,b,c):用三个棒子分别用变量a,b,c来表示
示意图

1、终止条件n==1:
此时hanio(1,a,b,c);直接将a上面的盘子放到c盘子上
2、一般情况n!=1:
此时先将n-1个盘子,通过c棒子移动到b棒子上面,然后输出:接将a棒子上剩下的最后一个盘子移动到c棒子上
然后b棒子上边有n-1个盘子,此时要把其中n-2个盘子经过c棒子移动到a棒子上,然后输出:将b盘子上边的唯一一个盘子移动到c棒子上边
#汉诺塔
def hanio(n,a,b,c):
if n==1:
print(a,'-->',c)
else:
hanio(n-1,a,c,b)
print(a,'-->',c)
hanio(n-1,b,a,c)
n,a,b,c = 3,'A','B','C'
hanio(n,a,b,c)
输出结果:

版权声明:本文为yky__xukai原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。