Java 如何解决这个递归函数难题?

Java 如何解决这个递归函数难题?,java,arrays,recursion,Java,Arrays,Recursion,在公司面试时,面试官问我这个问题 假设我们有这样一个数组: int[] arr = {2,12,14,-16,18,22,45}; 他们让我编写一个函数来获取数组的和 那么,在以下给定条件下,如何使用函数获得该数组的和: 条件1:我不能使用任何全局变量。意味着数组也是在函数中定义的。 条件2:我必须使用递归函数 编码应该是java语言 我没有在这里发布代码,因为这个问题是在面试时问我的,我无法找到这个问题的解决方案。我在stackoverflow上找到了一些解决方案,但在这些解决方案中,没有人

在公司面试时,面试官问我这个问题

假设我们有这样一个数组:

int[] arr = {2,12,14,-16,18,22,45};
他们让我编写一个函数来获取数组的和

那么,在以下给定条件下,如何使用函数获得该数组的和:

条件1:我不能使用任何全局变量。意味着数组也是在函数中定义的。
条件2:我必须使用递归函数

编码应该是java语言


我没有在这里发布代码,因为这个问题是在面试时问我的,我无法找到这个问题的解决方案。我在stackoverflow上找到了一些解决方案,但在这些解决方案中,没有人在函数中定义数组。

也可以这样做

int[] arr = {2,12,-6};

System.out.println(recur(arr, arr.length-1)); // output : 8

int recur(int arr[] , int lastindex){

        if(lastindex == 0 ){
            return arr[lastindex];
        }

        return arr[lastindex] + recur(arr, lastindex-1);

    }
做同样的事情

int[] arr = {2,12,-6};

System.out.println(recur(arr, arr.length-1)); // output : 8

int recur(int arr[] , int lastindex){

        if(lastindex == 0 ){
            return arr[lastindex];
        }

        return arr[lastindex] + recur(arr, lastindex-1);

    }
试试这个

static int sum(int[] array, int index) {
    if (index >= array.length)
        return 0;
    else
        return array[index] + sum(array, index + 1);
}

试试这个

static int sum(int[] array, int index) {
    if (index >= array.length)
        return 0;
    else
        return array[index] + sum(array, index + 1);
}


问这样的问题而不表现出任何努力是不好的。到目前为止你尝试了什么。张贴你的代码显然这得到了两张赞成票,但是问这样的问题却没有表现出任何努力是不好的。到目前为止你尝试了什么。张贴你的代码显然这得到了两个以上的票数,但是你不需要一个总的变量,只要返回总和,它就会被计算出来recursively@YassinHajaj谢谢您不需要一个total变量,只需返回总和即可计算出来recursively@YassinHajaj谢谢