递归算法的简单示例

本文深入探讨了递归算法在Python中的应用,包括求和、计数及查找最大值等核心功能,通过实例讲解了递归的基本条件和递归条件,帮助读者掌握递归算法的设计与实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,递归实现sum()函数

def sum(list):
    if list == []:
        return 0    
    return list[0] + sum(list[1:])
list = [1,2,3,4]
print(sum(list))

2,递归计算列表中元素个数

def count(list):
    if list == []:
        return 0    
    return 1 + count(list[1:])
list = [1,2,3,4]
print(count(list))

3,递归找出列表中最大数

def max(list):
    if len(list) == 2:
        if list[0] > list[1]:
            return list[0]
        else:
            return list[1]
    sub_max = max(list[1:])
    if list[0] > sub_max:
        return list[0]
    else:
        return sub_max
list = [1,2,3,4,5]
print(max(list))
def max(list):
    if len(list) == 2:
        return list[0] if list[0] >list [1] else list[1]
    sub_max = max(list[1:])
    return list[0] if list[0] > sub_max else sub_max
list = [1,2,3,4,5]
print(max(list))

小结:在进行递归时,需要搞清问题的基本条件和递归条件,基本条件决定该递归函数什么时候结束;示例中的第一个return中返回基本条件值,第二个return返回整个函数的输出值(注,不要理解成if…else…的关系)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值