首页  >  问答  >  正文

递归中的-1所代表的含义是什么?

在这段代码中,我试图理解递归的概念,但是我完全错过了这一点:sum(arr, n) = sum(arr, n - 1) + arr[n - 1];

我有这段代码:

function sum(arr, n){

  if(n <= 0){
    return 0;

  } else {
    return sum(arr, n - 1) + arr[n - 1];
  }

}

console.log(sum([5, 4, 7, 9, 2, 6], 5);

我试图理解表达式:sum(arr, n - 1) + arr[n - 1]; 是这样的吗:在sum(arr, n - 1)中,n是(index - 1)还是(n - 1)是要添加的数组项的长度。此外,在完成这个操作之后,第二个表达式arr[n - 1]怎么样。[n- 1]是一个数组元素吗,因为它在一个数组中,所以有"[]"。

如果有什么愚蠢或烦人的地方,请原谅,但是如果有人能帮忙指点我正确的方向,我将非常感激。

P粉578343994P粉578343994429 天前639

全部回复(1)我来回复

  • P粉423694341

    P粉4236943412023-09-08 09:29:40

    你的函数 sum(arr,n) 可以描述为计算 arr[0]+...+arr[n-1]

    这等同于 arr[0]+...+arr[n-2]+arr[n-1]

    这等同于 sum(arr,n-1) + arr[n-1]

    唯一不适用这个规则的情况是当 n<=0 时,此时和为0。

    回复
    0
  • 取消回复