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')
def hanoi(n,x,y,z):
if n==1:
print(x,'-->',z)
tmp=x[len(x)-1]
x.remove(tmp)
z.append(tmp)
print(x)
print(y)
print(z)
else:
#-----------------------------------------------
hanoi(n-1,x,z,y)#将n-1个盘子从x移动到y
#-----------------------------------------------
print(x,'-->',z)#将最后一个盘子从x移动到z上
if len(x)>1:
tmp=x[len(x)-1]
#print(tmp)
x.remove(tmp)
z.append(tmp)
print(x)
print(y)
print(z)
print("======>")
#-----------------------------------------------
hanoi(n-1,y,x,z)#将y上的n-1个盘子移动到z上
def getInitList(n):
mylist=[]
for i in range(n):
mylist.append(i+1)
mylist.reverse()
return mylist
n=int(input('请输入汉诺塔的层数:
'))
xlistInit=getInitList(n)
xlist=xlistInit[:]
xlist.insert(0,'x')
ylist=['y']
zlist=['z']
hanoi(n,xlist,ylist,zlist)