这是我的代码:
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);
}
我不断遇到错误,但是我没有做错什么。
最佳答案
您的基本条件有问题。它应该是:
if (index == array.length)
请注意,您需要在首次通话时传递
index = 0
。如果要传递index = array.length - 1
,则保持基本情况不变,然后将递归方法调用更改为传递index - 1
,而不是index + 1
。但是,您真的需要递归吗?在进行递归而不是循环执行此任务之前,我将认真考虑一下数百种想法。