Моя цель - написать метод, показывающий, как движется последовательность Фибоначчи. Я должен использовать массив и уравнение, чтобы показать, как числа перемещаются в массиве (таким образом, повторяя значение, используя метод Фибоначчи: предыдущее число + текущее число = следующее число).
Это логика c, которая Я хочу использовать массив [] в качестве представления:
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];
}
Возвращенное значение выглядит нормально. В тесте Фибоначчи fib из 5 - это 5, а 4 - 3. Меня беспокоит то, как эта строка выглядит в отладчике. То, как я их перемещаю, заставляет их выглядеть так: {3,5,2,3,5} и должно быть {1,1,2,3,5}.