繁体   English   中英

使用数组而不使用递归技术的斐波那契数列

[英]Fibonacci sequence using array without using recursion technique

我正在尝试生成一个代码,该代码将使用数组显示斐波那契数列 我确实生成了一个具有正确解决方案的代码,但我认为它太长了,因为讲师告诉我们最多 5 行代码 所以在这里方法是:

public static void fibonacci_array_calc(int[] array) {
    int result;
    System.out.println("Fibonacci Series of " + array.length + " numbers: ");
    if (array.length == 0 || array.length == 1) {
        for(int i = 0;i < array.length; i++)
            System.out.print(array[i] + " ");
    } else {
        for (int i = 0; i <= 1; i++) {
            result = array[i] = i;
            System.out.print(result + " ");
            if (array[i] >= 1) {
                for (int j = 2; j < array.length; i++, j++) {
                    result = (array[j] = (array[i] + array[i - 1]));
                    System.out.print(result + " ");
                }
            }
        }
    }
}

输出是

Fibonacci Series of 10 numbers: 
0 1 1 2 3 5 8 13 21 34

不允许使用递归技术有没有办法缩短这段代码?

您可以通过对array[i]使用条件赋值来极大地简化代码。 无论输入数组的长度如何,都可以使用此分配:

public static void fibonacci_array_calc(int[] array) {
    System.out.println("Fibonacci Series of " + array.length + " numbers: ");
    for (int i = 0; i < array.length; i++) {
        array[i] = i <= 1 ? i : array[i-2] + array[i-1];
        System.out.print(array[i] + " ");
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM