Python3:函数递归的基本理解

我刚开始接触递归的时候,就被它难到了,如果一个函数在函数中调用自己,这个就叫做递归,在使用递归时候必须得有一个明确的结束条件,否则它会无限递归下去,sys.setrecursionlimit语法可以修改最大次数;

def fun(n):
if n == 1:
return 1
return n + fun(n-1)
print(fun(5))
import sys ## 修改递归最大次数
sys.setrecursionlimit(1500) ## 修改递归最大次数

上面这个函数解决的是什么问题呢? 它计算的是这个数列:1+2+3+4…….+n-1+n,它的计算公式(n+1)*n/2,而上面我们用递归的方式把它算出来了,下面我们用程序的语言算出结果 fun(5) 5 + fun(4) 5 + (4 + fun(3)) 5 + (4 +(3 + fun(2))) 5 + (4 + (3 + (2 + fun(1)))) 5 + (4 + (3 + (2 + 1))) 5 + (4 + (3 + 3)) 5 + (4 + 6) 5 + 10 15