Java如何返回fibonacci值从1开始的数组?
我正在写一个空函数fibFill,它用Fibonacci数填充数组。它不必归还任何东西 以下是我目前掌握的情况:Java如何返回fibonacci值从1开始的数组?,java,arrays,compiler-errors,fibonacci,Java,Arrays,Compiler Errors,Fibonacci,我正在写一个空函数fibFill,它用Fibonacci数填充数组。它不必归还任何东西 以下是我目前掌握的情况: void fibFill(int[] fibo) { fibo[0] = 1; fibo[1] = 1; for (int i = 2; i < fibo.length; i++) { fibo[i] = fibo[i - 1] + fibo[i - 2]; } int pos(int position) {
void fibFill(int[] fibo) {
fibo[0] = 1;
fibo[1] = 1;
for (int i = 2; i < fibo.length; i++) {
fibo[i] = fibo[i - 1] + fibo[i - 2];
}
int pos(int position) {
return fibo[pos];
}
}
void fibbill(int[]fibo){
fibo[0]=1;
fibo[1]=1;
对于(int i=2;i
例如,如果我将长度为5的数组传递给该方法,它将覆盖传递的数组的内容,如下所示:
[1,1,2,3,5]
您的fibFill
方法不应嵌入pos
方法;我会使它静态(这样就可以在没有实例的情况下调用它),比如
哪个输出(根据要求)从1开始的斐波那契值
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
固定的:
static void fibbill(int[]fibo){
如果(fibo.length==0)返回;
如果(纤维长度==1)
{
fibo[0]=1;
返回;
}
fibo[0]=1;
fibo[1]=1;
对于(int i=2;i
请注意,此解决方案的成本为O(n),您也可以直接通过公式进行计算,并且还有更多的方法来计算斐波那契。有关更多信息:
我看不出此代码有任何问题。如果fibo
太小,此函数将抛出。为什么不使用ArrayList?@Maljam:Problem:this:return fibo[pos]
与此不一致:void
。如果希望该方法返回int数组,则声明它这样做:public int[]fibfilfill(int-length)
thereturn fibo[pos]
对应于(错误嵌入的)pos()
方法的int
返回类型。对于0元素数组,此方法将失败。
public static void main(String[] args) {
int[] fib = new int[10];
fibFill(fib);
System.out.println(Arrays.toString(fib));
}
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
static void fibFill(int [] fibo) {
if(fibo.length==0) return;
if(fibo.length==1)
{
fibo[0]=1;
return;
}
fibo[0] = 1;
fibo[1] = 1;
for (int i = 2;i < fibo.length; i++)
{
fibo[i]=fibo[i-1]+fibo[i-2];
}
}
//there is no need for pos, as you can get it by type fibo[index]