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