python 汉诺塔问题(递归)

汉诺塔(港台:河内塔)是根据一个传说形成的数学问题:

有三根杆子A,B,C。A杆上有N个(N>1)穿孔圆盘,盘的尺寸由下到上依次变小。要求按下列规则将所有圆盘移至C杆:

每次只能移动一个圆盘;
大盘不能叠在小盘上面。

def hanoi(n,x,y,z):
     if n==1:
          print(x,'-->',z)
     else:
          hanoi(n-1,x,z,y)#将前n-1个盘子从x移动到y
          print(x,'-->',z)#将最后一个盘子从x移动到z上
          hanoi(n-1,y,x,z)#将y上的n-1个盘子移动到z上

n=int(input('请输入汉诺塔的层数:'))
hanoi(n,'X','Y','Z')

    原文作者: 汉诺塔问题
    原文地址: https://blog.csdn.net/yangmolulu/article/details/80041091
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞