Discuss / Python / 试试能不能发评论

试试能不能发评论

Topic source

非常感谢楼上几位的答案和鸟蛋兄分享那篇文章,现在总算想明白了。

首先n = (n-1) + 1嘛,于是把“n”分解成“n-1”和“1”两块。

汉诺塔这个游戏的规律就是先把a上面最后一块“1”的上面所有的东西“n-1”全部想办法移到b上面,然后把最后一块“1”移到c上面,最后把“n-1”想办法移到c上面就完成了。简单来想就是这样。

当n正好等于1的时候从a直接移到c上就行了,否则就要像上面说的那样去做了。

def move(n, a, b, c):
    if n == 1:
        print('move', a, 'to', c)
        return
    else:
        move(n-1, a, c, b)
        move(1, a, b, c)
        move(n-1, b, a, c)

move(3, 'A', 'B', 'C')

具体细节的我真的懒得去想,脑细胞都死光了(:з」∠)


  • 1

Reply