【发布时间】:2013-12-13 18:07:08
【问题描述】:
我有一个程序,我正在尝试为类创建一个使用递归返回数组中所有整数之和的程序。到目前为止,这是我的程序:
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
【问题讨论】:
-
在这种情况下,使用递归不仅更复杂,而且速度要慢得多。我认为这只是一个练习。