Я создал метод вычисления чисел Фибоначчи итеративно (мне не разрешено использовать рекурсию). После 47 я получаю странные результаты:
Фибоначчи номер 47: -1323752223
Фибоначчи номер 48: 512559680
Фибоначчи номер 49: -811192543
число Фибоначчи 50: -298632863Итерационный метод Фибоначчи - java
Я пробовал разные способы, но он изменяет все это. Вот мой метод, любые идеи? Надеюсь, ты поможешь мне.
public static long fiboIterative(int n) {
if (n == 0)
return 0;
if (n == 1 || n == 2)
return 1;
int previous = -1;
int result = 1;
for (int i = 0; i <= n; i++) {
int sum = result + previous;
previous = result;
result = sum;
}
return result;
}
}
'int' являются 32-разрядными и не являются неограниченными. Вместо этого вы можете использовать 'double', но он также ограничен с точки зрения точности. Я предлагаю вам попробовать написать его, чтобы использовать «BigInteger» в качестве упражнения. –