用java语言递归求数组中所有元素的和
这是我的密码:
public int sum(int[] array, int index)
{
//int index is the number of elements in the array.
//Here is my base case:
if (index == 0)
return 0;
//Now it's time for the recursion
else
return array[index] + sum(array, index + 1);
}
我不断地犯越界错误,但我不知道我做错了什么
# 1 楼答案
你的基本条件有问题。应该是:
注意,您需要在第一次调用时传递
index = 0
。如果要传递index = array.length - 1
,则保持基本大小写不变,并将递归方法调用更改为传递index - 1
,而不是index + 1
然而,您真的需要递归吗?在进行递归而不是循环执行此任务之前,我会认真思考数百次
# 2 楼答案
@Masud-your's代码有一个逻辑错误(我是Java初学者,如果我不正确,很抱歉)
当索引从0开始时,将收到一个越界错误-因此意味着那里不会有索引。 “索引-1”将起作用。 此外,这会将基本大小写更改为返回“0”,因为返回的数组[0]将添加两次数组[0],且总和不正确
这是我的代码:
# 3 楼答案
试试看
# 4 楼答案
不是从0到最高索引,而是从最高索引到0,我这样做了(索引-1),因为你们说索引是元素总数,所以若数组有10个元素,最后一个元素有索引9
# 5 楼答案
如果您使用的是Java1.8,那么可以执行以下操作
甚至