当前位置: 首页 > 面试题库 >

递归求和数组中的整数

马庆
2023-03-14
问题内容

我有一个我要为类创建的程序,该程序使用递归返回数组中所有整数的总和。到目前为止,这是我的程序:

public class SumOfArray {

private int[] a;
private int n;
private int result;

    public int sumOfArray(int[] a) {

      this.a = a;
      n = a.length;

      if (n == 0)  // base case
      result = 0;
      else
          result = a[n] + sumOfArray(a[n-1]);

      return result;

   } // End SumOfArray method

} // End SumOfArray Class

但是,我相信我得到了三个都相关的错误,但是我不知道为什么它会找到一种null类型:

SumOfArray.java:25: sumOfArray(int[]) in SumOfArray cannot be applied to (int)
    result = a[n] + sumOfArray(a[n-1]);
                    ^
SumOfArray.java:25: operator + cannot be applied to int,sumOfArray
    result = a[n] + sumOfArray(a[n-1]);
              ^
SumOfArray.java:25: incompatible types
found   : <nulltype>
required: int
    result = a[n] + sumOfArray(a[n-1]);
                  ^
3 errors

问题答案:

该解决方案比看起来简单,请尝试以下操作(假设数组的长度为非零):

public int sumOfArray(int[] a, int n) {
    if (n == 0)
        return a[n];
    else
        return a[n] + sumOfArray(a, n-1);
}

这样称呼它:

int[] a = { 1, 2, 3, 4, 5 };
int sum = sumOfArray(a, a.length-1);


 类似资料:
  • 给定一个2d数组,我需要返回一个具有路径的矩阵,该路径递归地求和到给定的数字。 路径矩阵应为零,但总计为给定数字的路径除外,该路径将标记为1。 路径只能在 我尝试过所有的可能性,首先检查我是否已经去过下一个街区。 问题是在一些迭代之后,它会停止,并且不会返回并再次将块清除为0。 给定 在通话中 我以为算法会回来 我得到 相反 调用paintPath(mat1400,path,0,0);我想 或 问

  • 我有一个很难处理的任务。 我试图编写一个递归函数(完全没有循环),给定一个数组及其长度,它将打印一对子数组,每个子数组的和将是整个数组和的一半。换句话说,数组被分成两组整数,以便它们的和相等。 例如,给定数组{1,2,2,0,5},函数应输出{1,2,2}{0,5} 我必须递归地做,用一个只得到数组本身及其大小的函数。我也只允许使用一个额外的递归函数来解决这个问题。 任何想法或想法都将受到最大的赞

  • 在LeetCode上解决数组旋转时,我编写了一个递归算法来解决这个问题: 给定一个数组,将数组向右旋转k步,其中k为非负。 例1: 输入: Nums=[1,2,3,4,5,6,7], k=3输出:[5,6,7,1,2,3,4]说明:向右旋转1步:[7,1,2,3,4,5,6]向右旋转2步:[6,7,1,2,3,4,5]旋转3步向右:[5,6,7,1,2,3,4] 例2: 输入:nums=[-1,-

  • 我必须编写一个递归函数来检查两个相同大小的给定数组是否具有相同的元素,但它们可能顺序不同。 我认为最优雅的解决方案是对两个数组进行排序,然后比较每个元素,但我不知道如何在一个递归函数中对两个阵列进行排序。 所以我有另一个想法,使用线性搜索,获取数组1的最后一个元素并在数组2中搜索它,如果它在那里,使用移位函数,移动该元素前面的所有元素(在数组2中)并返回true,如果没有找到它,则返回false。

  • 那么我如何使用这个pair类和我的方法来找到最小值和最大值。

  • 本文向大家介绍在JavaScript中使用递归求和数组的修改后的版本,包括了在JavaScript中使用递归求和数组的修改后的版本的使用技巧和注意事项,需要的朋友参考一下 假设,我们需要编写一个递归函数,该求和函数将Numbers数组的所有元素相加,但有一个转折,而转折是我们编写的递归函数不能初始化任何额外的变量(内存)。 就像我们不能使用变量来存储总和或保持数组索引的计数一样,所有这些都必须使用