python练习5:递归(汉诺塔问题)

现有3根柱子A,B,C,将A的所有盘子,用汉诺塔的移动方式借助B柱子移动到C柱子.

def hannuo(n,a,b,c,):
    if n==1:
        step=1
        print(a,'--->',c)
        return step
    else:
        x1=hannuo(n-1,a,c,b) #将n-1快从A移动到B
        x2=hannuo(1,a,b,c)   #将1块移从A动到C
        x3=hannuo(n-1,b,a,c)  #将n-1块从B移动到C
        step=x1+x2+x3
        return step
s=hannuo(4,'A','B','C')
print('需要 %d 步骤完成'%s)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容