递归
递归必须要有边界条件,即停止递归的条件:
例子:斐波那契数列 后一项为前两项的和0,1,1,2,3,5,8…
def fib(n):
a, b = 0, 1
count = 1
while count < n:
a, b = b, a+b
count = count + 1
print(a)
使用递归:
def fib(n):
if n==0 or n==1:
return n
else:
return fib(n-1) + fib(n-2)
递归的代码更简洁,更符合自然逻辑,更容易理解
然而递归效率较低,比循环消耗更大,因为需要逐层递归调用,逐层返回调用至最初层