关于汉诺塔算法的递归写法

来源:互联网 发布:软件自动升级方案设计 编辑:程序博客网 时间:2024/05/16 18:09

汉诺塔:有三根柱子a,b,c,其中柱子a放着从小到大排列的n个盘子,要求借助b,把盘子全部转移到c柱子


def move(n,a,b,c)

当盘子数为一个时(n=1),直接a→c;

当盘子数大于一时(n>1):

    需要把第一到n-1个移到b上,mov(n-1,a,c,b)

    再把第n个移到c上(a→c)

    最后把剩下在b上的通过a移到c,mov(n-1,b,a,c)


def mov(n, a, b, c):    if(n == 1):        print('%s-->%s'%(a,c))    else:        mov(n-1, a, c, b)        mov(1, a, b, c)        mov(n-1, b, a, c)


0 0
原创粉丝点击