Discuss / Python / 交作业

交作业

Topic source

其实递归的思想很便于解决问题, n个盘子,可以把n-1个盘子当做一个黑盒,我不管你之前n-1个盘子怎么放的,我只看最后一步,相当于n-1个盘子和1个盘子的问题。那么我只需要把n-1个盘子从a借助c移到b就可以了,最后一个盘子,就直接从a移到c就可以了,那么我再把n-1个盘子从b借助a移到c就可以了。这样递归规模就变成了n-1,直到n=1问题解决。

代码如下:

def move(n, a, b, c):

    if n == 1:

        print(a, '-->', c)

    else:

        move(n-1, a, c, b)

        move(1, a, b, c)   //当然这里直接写成print(a, '-->', c)也可以,更直观一点

        move(n-1, b, a, c)

不好意思,倒数第二句的注释顺手写成C语言的注释了,希望别造成误导


  • 1

Reply