用Python玩汉诺塔

问题:

有三根杆子A,B,C。A杆上有3个圆盘,盘的尺寸由下到上依次变小。要求按下列规则将所有圆盘移至C杆:每次只能移动一个圆盘;大盘不能叠在小盘上面。

代码:

def hannuo(n, a, buffer, c):
    '''
    :param n: 盘子的个数
    :param a: 柱子
    :param buffer: 柱子
    :param c: 柱子
    :return:
    '''
    if n == 1:
        print(a, '->', c)
        return
    hannuo(n - 1, a, c, buffer)
    hannuo(1, a, buffer, c)
    hannuo(n - 1, buffer, a, c)


hannuo(3, 'a', 'b', 'c')

运行结果:

a -> c
a -> b
c -> b
a -> c
b -> a
b -> c
a -> c

未经允许不得转载:445IT之家 » 用Python玩汉诺塔

赞 (0) 打赏

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏