如果一个函数在内部不调用其它函数,而是自己,这个函数就是递归函数
优点:定义简单,逻辑清晰
特性:
1)必须有一个明确的结束条件;
2)超过一定调用次数,会导致栈溢出,有一个上限值
递推
回溯
举例:求和
def f(n):
if n > 0:
return n + f(n-1)
else:
return 0
print(f(3))
》》》6
举例2:斐波那契数列 1,1,2,3,5,8....
def f1(n):
if n<=1:
return n
else:
return f1(n-1)+f1(n-2)
print(f1(0),f1(1),f1(2),f1(3),f1(4),f1(5),f1(6))
0 1 1 2 3 5 8
举例3:写出斐波那契数列前15项
lst=[]
def f1(n):
if n<=1:
return n
else:
return f1(n-1)+f1(n-2)
for i in range(1,15):
lst.append(f1(i))
print(lst)
》》》[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377]