Python 遞歸----實現字符串翻轉,斐波那數列,漢諾塔


def rvs(s):
    if s== "":
        return s #遞歸激勵
    else:
        return rvs(s[1:])+s[0] #遞歸鏈條
print(rvs("123456"))

斐波那數列:

def f(n):
    if n == 1 or n == 2 :
        return 1
    else:
        return f(n-1)+f(n-2)
print(f(10))

漢諾塔:

count = 0
def hanoi(n,src,dst,mid):
    global count
    if n == 1:
        print("{}:{}->{}".format(1,src,dst))
        count +=1
    else:
        hanoi(n-1,src,mid,dst)
        print("{}:{}->{}".format(n,src,dst))
        count +=1
        hanoi(n-1,mid,dst,src)

hanoi(3,'A','C','B')
print(count)

輸出:

1:A->C
2:A->B
1:C->B
3:A->C
1:B->A
2:B->C
1:A->C
7

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