Python汉诺塔移动

汉诺塔移动 
从左到右有A、B、C三根柱子,其中A柱子上面有从小叠到大的n个圆盘,现要求将A柱子上的圆盘移到C柱子上去,
期间只有一个原则:一次只能移到一个盘子且大盘子不能在小盘子上面,求移动的步骤和移动的次数
n=1   A-C   1次

n=2  A-B   3次
        A-C
        B-C

n=3  A-C   7次
        A-B
        C-B
        A-C
        B-A
        B-C
        A-C

def move(A,C):
    print(A,'--->',C)

def hanoi(n,A,B,C):
    if n==1:
        move(A,C)
    else:
        hanoi(n-1,A,C,B)
        move(A,C)
        hanoi(n-1,B,A,C)
		
hanoi(3,'A','B','C')
A ---> C
A ---> B
C ---> B
A ---> C
B ---> A
B ---> C
A ---> C

猜你喜欢

转载自blog.csdn.net/zoujin6649/article/details/81133787