在python中我们使用函数经常是去调用别的函数,但是递归函数不一样,它是***自己去调用自己***,如果不了解递归的可以看下电影盗梦空间,相信会对理解递归函数有帮助。
递归函数的条件有两个:
1.必须给递归函数一个出口,否则会无限调用,耗费内存
2.对自己的递归条件作大胆假设
下面我们计算数学上经常计算的阶乘,阶加等算法
def scale(s):
"""
使用递归函数来计算阶乘,阶加等
:param s:
:return:
"""
if s == 1:
return s
else:
# return s * scale(s - 1)
return s + scale(s - 1)
print(scale(1))
print(scale(10))
print(scale(100))
除了使用递归函数,我们也可以使用迭代来进行计算:
def scales(n):
"""使用迭代来进行计算阶乘,阶加等"""
pass
result = 1
for s in range(2, n+1):
result += s
# result *= s
return result
print(scales(1))
print(scales(10))
print(scales(100))
同样和递归计算的结果一样
递归函数的好处:
1.代码比较少
2.代码界面整洁
坏处:
1.逻辑有点难理解
2.不写出口时耗费内存
当然我们只要能够计算出结果什么方式都可以,怎么简单怎么来