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

浙公网安备 33010602011771号