巧用python解决汉诺塔问题,只要八行代码解决递归问题

大家好,我是天空之城,今天给大家带来,巧用python解决汉诺塔问题,只要八行代码解决递归问题。

相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏。该游戏是在一块铜板装置上,有三根杆(编号A、B、C),在A杆自下而上、由大到小按顺序放置64个金盘(如下图)。游戏的目标:把A杆上的金盘全部移到C杆上,并仍保持原有顺序叠好。操作规则:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于A、B、C任一杆上。

def hannuotower(num,a,b,c):
    if num==1:
        print('第1个盘子从',a,'->',c)#假设只有一个盘子,那么直接从a移动到c
    else:
        hannuotower(num-1,a,c,b)#假设现在有两个盘子,那么从a柱子把上面的第一个小盘子从a移动到b
        print('第',num,'个盘子',a,'->',c)#接着把a柱子上面的第二个大盘子从a移动到c
        hannuotower(num-1,b,a,c)#最后把b柱子上的小盘子移动到c柱子,完成


hannuotower(2,'A','B','C')


你可能感兴趣的:(mysql)