利用Python实现递归的汉诺塔问题
汉诺塔问题就是有三根柱子分别为x,y,z。在这三根柱子中在x柱上有设有number个盘子,盘子放在最下面的最大,我们需要将这些盘移动到z盘,且每次仅可移动一个盘子和只能保持大的盘子处于下面,下面我们采用递归的思想来解决汉诺塔问题。
def fun(number,x,y,z):
if number==1:
print(x,'-->',z)
else:
fun(number-1,x,z,y) # 前n-1个盘子借助z由x移动到y
print(x,'-->',z) # 打印出第n个盘由x移向z
fun(number-1,y,x,z) # 前n-1个盘子借助x由移到z上
number = int(input("请输入汉诺塔的层数:"))
fun(number,"X","Y","Z")