Mag*_* S. 6 java arrays recursion sum
我有一个程序,我正在尝试为类返回使用递归的数组中所有整数的总和.这是我迄今为止的计划:
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
Run Code Online (Sandbox Code Playgroud)
但我相信,我得到的三个错误都是相关的,但我无法弄清楚为什么它会找到一种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
Run Code Online (Sandbox Code Playgroud)
Ósc*_*pez 14
解决方案比它看起来更简单,试试这个(假设一个长度非零的数组):
public int sumOfArray(int[] a, int n) {
if (n == 0)
return a[n];
else
return a[n] + sumOfArray(a, n-1);
}
Run Code Online (Sandbox Code Playgroud)
像这样称呼它:
int[] a = { 1, 2, 3, 4, 5 };
int sum = sumOfArray(a, a.length-1);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46258 次 |
| 最近记录: |