1. 程式人生 > >python函式之遞迴

python函式之遞迴

遞迴:自己呼叫自己
無限遞迴:和死迴圈不一樣
避免無限遞迴---遞迴收斂條件

遞迴應用於難題---思想(思路)
遞迴:效率低,佔資源
能用遞迴的一定能用迴圈

解決階乘:(把大問題拆分成小問題)解決大問題的思路和小問題思路完全一樣,則可以是用遞迴的思想
def jc(n):
    if n==1:
        return 1
    return n*jc(n-1)
n=int(input('請輸入一個整數:'))
print(jc(n))

# 斐波那契數列
def f(n):   # 前兩項之和   ---第n項 ==(n-2)+(n-1)    1 1 2 3 5  3:4  1:4-2  2:4-1
    if n<3:
        return 1
    else:
        return f(n-2)+f(n-1)
for i in range(1,13):
    print(f(i))

漢諾塔問題

def h(cong,dao,jiezhu,n):
    if n==1:
        print('%s--->%s'%(cong,dao))
        return None
    else:
        #n-1從A--C+B
        h(cong,jiezhu,dao,n-1)
        #1個從A--B
        print('%s--->%s' % (cong, dao))
        #n-1從C--B+A
        h(jiezhu,dao,cong,n-1)
h('A','B','C',3)