本文主要是介绍简短意赅的用思维导图理解python递归实现汉诺塔,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
def hanoi(n,x,y,z):if n == 1:print(x ,'-->' ,z )else:hanoi(n-1 ,x ,z ,y )print(x ,'------>' , z)hanoi(n-1 ,y ,x ,z )
n = int(input('请输入汉诺塔的层数:'))
hanoi(n, 'x','y','z')
理解
每一步的意图想必都可以理解,主要问题在于不知道怎么就出来了一系列的操作步骤,观看众多大佬的解释,折腾了一中午后的我画思维导图终于理解它每一步到底是怎么来的了!!!
其中h3(x,y,z)代表的就是原代码中的hanoi(3,x,y,z),后面的h1,h2,h3都是这样
个人纠结懵逼半天总结:
其实就是函数的执行过程,一个接着一个弄完,然后就是函数里面又有函数,比如思维导图里面分岔里面又进行了分岔
再然后就是hanoi里面的x,y,z的几次的变化,虽然字母几次调换了顺序,但是他们最后输出的其实是和变量的位置相关。这样就好理解了。
里面分别用–>和---->来表示两次print输出的不同
最后3层的汉诺塔就是从上到下的顺序,依次是:
x–>z
x---->y
z–>y
x---->z
y–>x
y---->z
x–>z
第一次,请多多指教呀!
这篇关于简短意赅的用思维导图理解python递归实现汉诺塔的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!