python中的递归函数

一、递归函数的特性

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

 

二、递归函数的使用示例

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))

 

posted @ 2021-02-13 16:19  notesForKai  阅读(381)  评论(0)    收藏  举报