python--汉诺塔

汉诺塔-游戏规则:

1.一次只能移动一个

2.小盘始终放在大盘上




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

    if n == 1:
        print(a, '-->', c)
    else:
        move(n - 1,a,c,b) #将n-1个盘子,从a.移动到b上

        print(a, '-->', c) #最后一个盘子从a移动到c上

move(n - 1,b,a,c)#将n-1个盘子,又从b移动到c上


后面这三句注释,每一个又是一次独立的汉诺塔游戏。直到n为1

输出


分解来看:

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

当n=3

move(2,a,c,b)

当n=2

    move(1,a,b,c)

当n=1

        print('a', '-->', 'c')
    print(a, '-->', b)
    move(1,c,a,b)
        print('c', '-->', 'b')
 
print(a,c)
        
move(2,b,a,c)
    move(1,b,c,a)
        print('b', '-->', 'a')
    print(b, '-->', c)
    move(1,a,b,c)

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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值