python递归实现汉诺塔

汉诺塔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版权协议,转载请附上原文出处链接和本声明。