遞歸實例:漢諾塔問題

  • 遞歸的兩個特點
    • 調用自身
    • 結束條件
# _*_coding:utf-8
'''
遞歸實例:漢諾塔問題
n----盤子總數
a----第一個柱子
b----第二個柱子
c----第三個柱子
n個盤子時:
    1、將n-1個盤子,從A經過C移動到B
    2、把n-1個盤子,從A移動到C
    3、把n-1個盤子,從B經過A移動到C
'''
#a,b,c  從a開始,經過b,移動到c
def hanoi(n,a,b,c):
    if n>0:
        hanoi(n-1,a,c,b)
        print("moving from %s to %s" %(a,c) )
        hanoi(n-1,b,a,c)
hanoi(3,"A","B","C")

'''
ps
moving from A to C
moving from A to B
moving from C to B
moving from A to C
moving from B to A
moving from B to C
moving from A to C
'''

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章