[英]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.