我正在写一个空函数fibFill,它用斐波那契数字填充数组。它不必返回任何东西。

这是我到目前为止的内容:

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];
    }
}

例如,如果我将长度为5的数组传递给方法,它将覆盖传递的数组内容,如下所示:[1, 1, 2, 3, 5]

最佳答案

您的fibFill方法中不应嵌入pos方法;我将其设置为static(这样就可以在没有实例的情况下调用它),例如

static 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];
    }
}

然后你可以用类似的东西来测试
public static void main(String[] args) {
    int[] fib = new int[10];
    fibFill(fib);
    System.out.println(Arrays.toString(fib));
}

哪个输出(根据要求)从1开始的斐波那契值
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]

10-08 13:38