标签:需求 资源 解决办法 它的 image nbsp 解决 src 递归
通过前面的学习知道一个函数可以调用其他函数。
如果一个函数在内部不调用其它的函数,而是自己本身的话,这个函数就是递归函数。
举个例子,我们来计算阶乘 n! = 1 * 2 * 3 * ... * n
解决办法1:
1! = 1 2! = 2 × 1 = 2 × 1! 3! = 3 × 2 × 1 = 3 × 2! 4! = 4 × 3 × 2 × 1 = 4 × 3! ... n! = n × (n-1)!
解决办法2:
原理
例子1:
# 需求: 5! = 5 * 4 * 3 * 2 * 1 # 不考虑递归函数 def my_func(num): # 定义一个变量 保存结果 ret = 1 for i in range(1, num + 1): ret *= i return ret print(my_func(100))
例子2:
# 需求: 5! = 5 * 4 * 3 * 2 * 1 # # 1! = 1 def func1(num): if num == 1: return num # 2! = 2 * 1! def func2(num): return num * func1(num -1) # 3! = 3 * 2! def func3(num): return num * func2(num - 1) # 4! = 4 * 3! def func4(num): return num * func3(num - 1) # 5! def func5(num): return num * func4(num - 1)
优化:
# 整合优化 # 递归函数: 其函数内部调用了自己本身 # python中的递归函数 是有递归次数 达到一定量后 会报错 # 使用递归必须有一个停止递归调用的条件 # 因为每次调用函数的时候 也需要消耗资源 # 会把计算机的资源耗尽 可能会造成计算机死机 # 函数存在于不同的空间 只是名字相同而已 # 识别哪些是递归函数 def func(num): if num == 1: return num return num * func(num - 1) print(func(5))
标签:需求 资源 解决办法 它的 image nbsp 解决 src 递归
原文地址:https://www.cnblogs.com/kangwenju/p/12840248.html