我理解通过迭代而不是递归更容易找到数组中的数字总和,但如果我使用递归来编写这样的函数,那么这段代码会出现什么问题呢?
public static double sum (double[] a) {
if (a.length == 0)
return 0.0;
else{
return sumHelper (a, 1, a[0]);
}
}
private static double sumHelper (double[] a, int i, double result) {
if (i < a.length) {
result = result + sumHelper (a, i + 1, result);
}
return result;
}
一切都运行没有错误,但在我测试时没有返回正确的总和 .
4 回答
将i的值初始化为0,因为您正在传递1.或尝试这个
主方法声明有问题:
如果你只是使用一种方法递归地对数组中的所有数字求和,那么这就是你要去的方法 . public static void main(String [] args){