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)

你可能感兴趣的:(python练习5:递归(汉诺塔问题))