【从零开始学算法】递归

什么是递归:递归是解决问题的一种方法,将问题分解为更小的问题,直到规模小的能够直接解决,就叫做递归。递归对问题的分解十分特殊,其在算法中的明显特征就是在函数中调用自身。

递归‘三定理’:

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]))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值