python遞歸函數實現階乘函數


 實現的效果如下:

參考www.cnblogs.com/yuanchenqi/articles/5828233.html

f(5)=5*4*3*2*1=120   f(7)=7*6*5*4*3*2*1=5040

開始:

def fat(n):

  ret=1

  for i in range(1,n+1):

    ret=ret*i

  return ret

print(fat(7))

但是這樣寫有點復雜,所以可用遞歸來實現:

思路:n的階乘=n*n-1的階乘

遞歸函數特點:調用自己,並有結束條件

def fact(n):
if n==1:
return 1
return n*fact(n-1)
print(fact(5))
案例2:實現菲波那嵌數列
0 1 1 2 3 5 8 13 21 34 55 (后一個數字是前兩數字的和)
怎樣用函數實現如下:
f(3)=1 取出第三元素
f(8)=13 取出第8個元素
實現思路:fibo(8)=fibo(7)+fibo(6)
def fibo(n):
if n<=1: 結束條件
return n
return fibo(n-1)+fibo(n-2) 調用自己
print(fibo(8))




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM