当我编码时:
public class Solution {
public static int[] generateFibonacciNumbers(int n) {
// Write your code here.
int[] a = new int[n];
solve(a, n);
return a;
}
public static void solve(int a[], int n){
if(n<=1){
a[n] = n;
return;
}
int s = solve(a, n-1) + solve(a, n-2);
a[n] = s;
}
}
我得到这个输出:
Compilation Failed
./Solution.java:16: error: 'void' type not allowed here
int s = solve(a, n-1) + solve(a, n-2);
^
./Solution.java:16: error: 'void' type not allowed here
int s = solve(a, n-1) + solve(a, n-2);
^
2 errors
我不知道如何开始问这个问题,除了问:
当你将solve声明为void时,你告诉java你不希望它返回任何值。如果solve没有返回任何内容,那么加法有什么用呢?
问题似乎在于尝试将没有返回类型的 void 函数的每个结果添加到 int。
您需要将solved的返回类型更改为int