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

如何编写正确的递归函数sumDelta计算指定序列的累加和?

修正递归函数sumdelta的实现

原代码存在两个核心错误,导致计算结果不符合预期:

  • 终止条件逻辑错误:原代码判断n <= d时返回d,但实际应该判断当前项(1+d)是否大于n,只有当前项超过n时才停止求和。
  • 终止返回值错误:当当前项超过n时,应返回0(表示无有效项可加),而非返回d,否则会额外累加一个不符合要求的数值(比如sumDelta(50,3)中错误加入了53,导致结果为173)。

修正后的递归函数

def sumdelta(n, d):
    current = 1 + d
    # 当前项超过n时,返回0终止递归
    if current > n:
        return 0
    # 累加当前项,递归计算下一项(下一项为当前项+10,等价于d增加10后的1+d)
    return current + sumdelta(n, d + 10)

验证示例

  1. 测试sumdelta(50, 3):
    计算过程为4 + 14 + 24 + 34 + 44 = 120,与预期结果一致。
  2. 测试sumdelta(63, 12):
    计算过程为13 + 23 + 33 + 43 + 53 = 165,与预期结果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 09:41:20