Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java如何返回fibonacci值从1开始的数组?_Java_Arrays_Compiler Errors_Fibonacci - Fatal编程技术网

Java如何返回fibonacci值从1开始的数组?

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) {

我正在写一个空函数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) {
        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)
the
return 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]