Discuss / Python / 重在理解思维

重在理解思维

Topic source
def move(n,a,b,c):
    if n==1:
        print(a,'-->',c)   #如果只有一个盘子,直接从a柱移动到c柱
    else: 
        move(n-1,a,c,b)    #将a柱上的n-1个盘子通过c柱移动到b柱
        print(a,'-->',c)   #移动完n-1个盘子之后,a柱剩下的最大盘子直接从a柱移到c柱
        move(n-1,b,a,c)    #b柱上的n-1个盘子通过a柱移动到c柱
move(3,'a','b','c')

其实汉诺塔问题一般不要去自己在脑海里想n个柱子每一步的移动方式(尝试过,脑子爆炸了),最主要的就是把最大的盘子和剩下的n-1个盘子当成两个独立的整体去思考,这样一来思路就清晰多了

然后再将n-1个盘子进行细化(因为n-1个盘子其中也有最大的那个盘子),这样一来递归逻辑就形成了

有道理!!!

牛逼

牛逼

太棒了。看了后面的注释,终于明白这个递归是怎么回事了。

你好棒,谢谢,终于懂了

行壬

#7 Created at ... [Delete] [Delete and Lock User]

学习了,谢谢


  • 1

Reply