问题:
递归函数是指一个函数可以调用自身的函数。通过递归函数可以编写出简洁而优雅的代码。但需要小心,递归深度过深可能会导致程序崩溃或效率低下。
利用递归函数,计算5!
分析:
递归函数必须要有一个或者多个终止条件,也叫边界条件,否则它会无限循环导致程序崩溃。
5!在数学的计算表达为 5! = 5*4*3*2*1
这个题目我们以变量n <= 1 来作为结束条件,返回值为 1;程序通过n-1作为循环条件来重复调用函数本身,返回递减自乘达到最后计算结果
代码实现:
def fun1(n):
if n <= 1:
return 1
return n*fun1(n-1)
print(fun1(5))
代码运行结果:
120
通过上面的程序设计,我们可以引申出1!+2!+3!+4!+5!...n!的和
代码实现:
def total1(n):
sum1 = 0
for i in range(1, n+1):
def sum2(i):
if i <= 1:
return 1
return i * sum2(i-1)
sum1 += sum2(i)
return sum1
print(total1(20))
代码运行结果:
2561327494111820313