递归函数

在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。

递归函数特性:

1、必须有一个明确的结束条件;

2、每次进入更深一层递归时,问题规模相比上次递归都应有所减少

3、相邻两次重复之间有紧密的联系,前一次要为后一次做准备,(通常前一次的输出就作为后一次的输入)。

查看当前可以承受的递归深度

num = 1
def func():
global num
print('from func', num)
num += 1
func()

func()
def foo():
    print('from foo')
goo()

def goo():
print('from goo')
foo()

foo()


想要递归有意义,必须遵循两个条件:
回溯: 指的是重复地执行, 每一次执行都要拿到一个更接近于结果的结果,回溯必要有一个终止条件。
递推: 当回溯找到一个终止条件后,开始一步一步往上递推。

def num(n):
sum = 0
for i in range(1,n+1):
sum += i
return sum
x = num(100)
print(x)



def sum_recu(n):
if n>0:
return n +sum_recu(n-1)
else:
return 0


sum = sum_recu(100)
print(sum)




原文地址:https://www.cnblogs.com/medigrat/p/11866764.html