System.IndexOutOfRangeException:数组索引超出范围

时间:2018-04-12 17:50:44

标签: c#-4.0

  public static void get_sum_while (int[] num,int len)
  {
    int sum2,i=0;
    while ( i<len)
    {
      sum2=sum2+num[i];
      i++;
    }
    Console.WriteLine("The sum of the series by while loop is {0}",sum2);
  }
  public static int get_sum_recur (int[] num,int len)
  {
    int sum3;
    if (len==0)
    return sum3=sum3+num[0];
    else
    {
      return sum3=num[len]+get_sum_recur(num,length-1);
    }

  }
}

你好,这给出了三个函数的总和,前两个是好的,但是递归并没有给它提供异常我不知道哪里出错了,这是通过递归获得总和的正确方法吗?

1 个答案:

答案 0 :(得分:0)

通过递归对列表求和的想法是将列表的元素与不具有所选元素的相同列表的总和相加。

"baabugbugbackscarybugbugbug"

因此结果的初始值必须设置为0。 然后选择一个元素,例如第一个元素,将其添加到当前结果,并使用新结果在列表的其余部分上调用sum。 当list为空时,结束递归。

在伪代码中,因为我没有C#编译器,所以它给出了:

sum([a,b,c,d,e]) = a + sum([b,c,d,e])