什么是递归:递归是解决问题的一种方法,将问题分解为更小的问题,直到规模小的能够直接解决,就叫做递归。递归对问题的分解十分特殊,其在算法中的明显特征就是在函数中调用自身。
递归‘三定理’:
1.递归算法必须存在一个基本结束条件(最小规模的解决问题)
2.递归算法必须能够改变状态向基本结束条件演进(减小问题规模)
3.递归算法必须调用自身(解决减小了规模的相同问题)
初识递归:
数列求和:给定一个列表,返回列表内全部数字的和,不能使用for和while循环
思路:不能使用循环所以可以用上递归,列表内的a+b+c+d+f转化为全括号表达式就是
((((a+b)+c)+d)+f),所以递归派上用场。
代码实现:
text = [1,2,3,4,5,6]
def sum11(text):
if len(text) == 1: #基本结束条件
return text[0]
else:
return text[0]+sum11(text[1:]) #调用自身并且减小问题规模
print(sum11([1,2,3,4,5,6]))