1. 程式人生 > >Python漢諾塔移動

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