You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何递归计算指定范围偶数和?如何将迭代求和函数改写为递归实现?

递归计算偶数和的实现思路与代码改写

嘿,刚学递归踩坑太正常啦!我来一步步帮你把迭代版的偶数求和改成递归实现,先从递归的核心逻辑说起~

递归计算偶数和的核心逻辑

递归的关键就是两点:

  • 基线条件:必须有一个停止递归的临界点,不然函数会无限调用自己直到栈溢出
  • 递归条件:把原问题拆解成更小的、和原问题结构一致的子问题,让函数自己调用自己解决子问题

针对“计算指定范围(到n)内偶数的和”这个问题:

  • 基线条件:当n < 2时,没有偶数可以累加,直接返回0
  • 递归条件:
    • 如果n是奇数,那它本身不是偶数,我们只需要计算到n-1的偶数和就行
    • 如果n是偶数,那总和就是n加上n-2范围内的偶数和(因为n-2是比n小的下一个偶数)

迭代函数的递归改写

你的迭代版函数是计算从2到n的偶数和,我们按照上面的逻辑直接改写:

def sum_even(n):
    # 基线条件:没有偶数可加时返回0
    if n < 2:
        return 0
    # 处理n为奇数的情况:等价于计算到n-1的偶数和
    if n % 2 != 0:
        return sum_even(n - 1)
    # 偶数情况:当前n加上更小范围的偶数和
    return n + sum_even(n - 2)

验证一下效果

比如调用sum_even(6),递归过程是这样的:

  1. sum_even(6) → 6 + sum_even(4)
  2. sum_even(4) → 4 + sum_even(2)
  3. sum_even(2) → 2 + sum_even(0)
  4. sum_even(0) → 0(触发基线条件)
    最后累加结果就是6+4+2+0=12,和你的迭代版本结果完全一致~

内容的提问来源于stack exchange,提问作者xstrongman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 17:27:33