Мой код показывает бесконечное число "2", я не понимаю, почему.
Также мой преподаватель сказал мне добавить проверку для отрицательных значений - я не знаю, как это сделать.
public class FibonacciRecursive {
public static void main(String[] args) {
int fibonacciNumberOrder = 10;
do {
System.out.print(fibonacci(fibonacciNumberOrder) + " ");
} while (true);
}
public static long fibonacci(int fibonacciNumberInOrder) {
if (fibonacciNumberInOrder == 0) {
return 0;
}
if (fibonacciNumberInOrder <= 2) {
return 1;
}
long fibonacci = fibonacci(-1) + fibonacci(-2);
return fibonacci;
}
}
редактировать:
Когда я изменил эту строку
long fibonacci = fibonacci(-1) + fibonacci(-2);
до:
long fibonacci = fibonacci(fibonacciNumberInOrder-1) + fibonacci(fibonacciNumberInOrder-2);
Он печатает бесконечные "55"
Как мне изменить свой код, чтобы он работал?