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

请问以下用于求序列A倒数和的算法是否属于递归算法?

这段代码是否属于递归算法?

首先明确递归算法的核心要求:函数在执行过程中必须调用自身,同时要有合理的终止条件避免无限递归。

先看你给出的代码:

findSum(A,n){
    Sum = 0
    if (n == 1) {
        return 1/A[0]
        }
    else {
        return A[n-1]
        Sum += 1/A[n-1]
    }
    return Sum
}

分析:

  • 递归的核心特征是函数调用自身,但这段代码的else分支直接返回A[n-1],完全没有出现findSum(...)的自身调用,这就不符合递归的最基本要求。
  • 代码本身还存在逻辑错误:else分支里return语句之后的Sum += 1/A[n-1]永远不会被执行;而且整个函数的逻辑也根本无法实现“n个元素的倒数之和”的计算任务。

结论:

这段代码完全不属于递归算法。如果要实现递归版的倒数求和,正确的逻辑应该是在else分支里调用findSum(A, n-1),再加上当前元素的倒数,比如:

findSum(A,n){
    if (n == 1) {
        return 1/A[0]
    } else {
        return 1/A[n-1] + findSum(A, n-1)
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 20:33:09