递归函数
递归函数
1、递归的概念
递归就是一个函数在它的函数体内调用它自身。执行递归函数将反复调用其自身,每调用一次就进入新的一层。递归函数必须有结束条件。
当函数在一直递推,直到遇到墙后返回,这个墙就是结束条件。
所以递归要有两个要素,结束条件与递推关系
2、借助动图理解递归
类似于这张图,一直在循环往复的重复着同一件事
3、计算n的阶乘
以十的阶乘为例 10!=10×9×8×7×6×5×4×3×2×1
根据公式,很容易发现规律即n=n×n-1
当n=1的时候要结束循环并输出结果。
1.用循环来计算阶乘
国际惯例,先用我们熟知的循环来计算10!
#!/usr/bin/python3
s=1
for i in range(1,11):
s *=i
print(s)
2.递归函数如何计算n的阶乘
同理,利用递归函来计算阶乘数同样需要一个结束条件,当n=1时返回结果。
代码实现如下:
def factor(n):
if n == 1:
return 1
return n*factor(n-1)
num = factor
print(num)
助解示意图: