Java 我真的不知道如何从递归公式打印数组
尝试使用递归返回斐波那契序列的整数数组。但我只是不知道如何将它放入数组中Java 我真的不知道如何从递归公式打印数组,java,recursion,Java,Recursion,尝试使用递归返回斐波那契序列的整数数组。但我只是不知道如何将它放入数组中 public int[] fibArray(int n){ int[] result = new int[n]; if(n<=2){ result[0] = 1; result[1] = 1; }else{ result[n] = fibArray[n-1] + fibArray[n-2]; } return result; } public int[]fibArray(int n){ in
public int[] fibArray(int n){
int[] result = new int[n];
if(n<=2){
result[0] = 1;
result[1] = 1;
}else{
result[n] = fibArray[n-1] + fibArray[n-2];
}
return result;
}
public int[]fibArray(int n){
int[]结果=新的int[n];
如果(n将该方法视为一个数组。它返回一个数组,而不是一个数组
public int[] fibArray(int n){
int[] result = new int[n];
if(n<=2){
result[0] = 1;
result[1] = 1;
}else{
int[] previous = fibArray(n-1); // note the parens, not braces
result[n] = previous[n-1] + previous[n-2]; // may be subject to off by one error, I trust you can fix that
}
return result;
}
public int[]fibArray(int n){
int[]结果=新的int[n];
如果(n,则需要在fibArray
函数之外初始化数组
int[] callingFunc(int size){
int[] myFibArray = new int[size]
myFibArray[0] = 1;
myFibArray[1] = 2;
myFibArray = fibArray(2, myFibArray)
}
public int[] fibArray(int n){
//Your fib function
return result;
}
按照现在的方式,每次递归调用都会初始化一个新数组,并将大小设置为n,这只是递归调用的数量。您共享的代码发生了什么情况?它似乎返回了一个int数组。是否出现错误?无法添加fibArray[n-1]和fibArray[n-2]您需要更具体地说,“不能添加”是什么意思?您是否看到异常,结果是否错误?按原样运行程序时,编译错误是“fibArray”和“fibArray”都无法解析为变量。并且“+”运算符不能应用于参数int[],int[]您需要调用方法fibArray
,但您使用方括号,将其视为数组。结果是数组,而不是方法。抱歉,我一直在尝试解决这个问题,但我对数组的语法不太熟悉。显示的错误是索引3超出长度3的界限。但是如果前面的[n-1]这不应该低于索引吗?如果n为3,则前一个数组的长度为2。请记住数组索引从0开始。您可能需要在正确的位置包含一个或两个-1值