汉诺塔就是将n个盘子从X柱挪至Z柱(三个柱子),大盘必须在小盘下方。
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’)
总体思路就三步:
1.将n-1个盘子(除了最底下一枚)从x移到y;
2.然后将位于x的最后一枚最大盘移至z;
3.再将y柱上所有盘移至z柱。