汉诺塔是比较经典的递归题目,此题陷井在于,在一个函数里,要先后递归两次。利用参数位置转变,达到输出路径的效果。
def move(n,x,y,z):#x借助y移到z if(n==1): print ‘%s -> %s‘%(x,z) else: move(n-1,x,z,y)#先把N-1借助z移到y print ‘%s -> %s‘%(x,z) #再把x直接移到z上 move(n-1,y,x,z)#再把y上的n-1 借助x移到Z上 move(3,‘a‘,‘b‘,‘c‘)
标签:位置 pos pre 直接 post span else 参数 move
汉诺塔是比较经典的递归题目,此题陷井在于,在一个函数里,要先后递归两次。利用参数位置转变,达到输出路径的效果。
def move(n,x,y,z):#x借助y移到z if(n==1): print ‘%s -> %s‘%(x,z) else: move(n-1,x,z,y)#先把N-1借助z移到y print ‘%s -> %s‘%(x,z) #再把x直接移到z上 move(n-1,y,x,z)#再把y上的n-1 借助x移到Z上 move(3,‘a‘,‘b‘,‘c‘)
标签:位置 pos pre 直接 post span else 参数 move
原文地址:https://www.cnblogs.com/yangxiao-tech/p/8613351.html