【发布时间】:2020-02-02 11:33:05
【问题描述】:
我的目标是编写一个显示斐波那契数列如何移动的方法。我必须使用数组和方程式来显示数字在数组上的移动方式(因此使用斐波那契方法迭代值:前一个数字 + 当前数字 = 下一个数字)。
这是我想用 array[] 作为表示的逻辑:
n = fibonacci number
i = 1;
previousNumber = 0
nextNumber = 1
sum = previousNumber + nextNumber;
while (i <= n) {
sum = previousNumber + nextNumber;
previousNumber = nextNumber;
nextNumber = sum;
return nextNumber;
我走了这么远,我被困住了:
long fibonacci(int fibonacci) {
int[] fib = new int[20];
if (fibonacci < 0) {
throw new IllegalArgumentException("n value cannot be negative number");
}
if (fibonacci == 0 || fibonacci == 1) {
return 1;
}
fib[0] = 1;
fib[1] = 1;
int i ;
for (i = 2; i < fibonacci; i++) {
fib[i] = fib[0] + fib[1];
fib[0] = fib[1];
fib[1] = fib[i];
}
return fib[i];
}
返回的值似乎没问题。在斐波那契测试中,来自 5 的 fib 是 5,而 4 是 3。让我担心的是这个字符串在调试器上的样子。我移动它们的方式使它们看起来像这样:{3,5,2,3,5},它应该是 {1,1,2,3,5}。
【问题讨论】:
标签: java arrays do-while fibonacci