ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python中的递归函数

2021-02-13 16:36:22  阅读:194  来源: 互联网

标签:return 递归 递归函数 python after factorial second num


一、递归函数的特性

  • 调用自身函数
  • 有一个结束条件
  • 凡是递归都可用循环解决
  • 递归有时效率很底

 

二、递归函数的使用示例

1.斐波拉契数列的实现

1.1 递归版本

 1 #递归版
 2 def fibo2(n, first_num=0, second_num=1):
 3     if n == 2:
 4         return second_num
 5     elif n == 1:
 6         return first_num
 7 
 8     return fibo2(n-2)+fibo2(n-1)
 9 
10 #0 1 1 2 3 5 8 13 21 34
11 print(fibo2(5))

1.2 循环版本

 1 #循环版
 2 def fibo1(n, first_num=0, second_num=1):
 3     before = first_num
 4     after = second_num
 5 
 6     for i in range(n-2):
 7         before, after = after, before+after
 8 
 9     return after
10 
11 #0 1 1 2 3 5 8 13 21 34
12 print(fibo1(4))

 

2.阶乘的实现

2.1 递归版本

1 #递归版
2 def factorial(n):
3     if n == 0:
4         return 1
5     else:
6         return n * factorial(n-1)
7 
8 print(factorial(0))

2.2 循环版本

 1 #循环版
 2 def factorial(n):
 3     if n == 0:
 4         return 1
 5     else:
 6         result = 1
 7         while n:
 8             result = result * n
 9             n -= 1
10     return result
11 
12 print(factorial(3))

 

标签:return,递归,递归函数,python,after,factorial,second,num
来源: https://www.cnblogs.com/xiaokaibiubiu/p/14400291.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有