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

计算数组元素和的递归方法递推关系写法正确性及优化问询

递归求和的递推关系写法分析

先看你给出的C#递归求和代码(注:C#中数组长度属性是Length,不是length,代码里此处为笔误):

public static int sumRecursive(int[] arr, int i) {
    if (i == arr.Length) {
        return 0;
    }
    return arr[i] + sumRecursive(arr, ++i);
}

针对两种递推关系写法的分析如下:

写法正确性判断

  • F(i) = arr[i] + F(i + 1):这是简化表述,默认数组arr是当前语境下的固定值,在上下文明确的场景下可以用,但从函数定义的严谨性来说,它没把数组作为函数输入参数体现,会让不了解语境的人疑惑arr的来源,不算严格准确的写法。
  • F(arr, i) = arr[i] + F(arr, i + 1):这种写法完全对应代码里的递归函数逻辑——函数输入就是数组arr和索引i,递推关系清晰体现了两个参数的依赖,边界条件也应修正为F(arr, n) = 0(n为数组长度),是严格正确的写法。

更优写法建议

如果想兼顾严谨性和可读性,推荐分情况明确写出递推关系:

当 i = n(数组长度)时,F(arr, i) = 0;
当 i < n 时,F(arr, i) = arr[i] + F(arr, i + 1)

这种写法把边界条件和递归分支清晰分开,理解和传播时都不会产生歧义。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 15:40:16