Расчет Фибоначчи в Java Longs показывает отрицательный

Мой калькулятор Фибоначчи работает нормально, но при увеличении числа результат получается отрицательным, как если бы он былInteger сверх его максимального значения.

Работает с кешемjava.util.Map<Integer, Long>, Все, что входит вMap это именно то, что ожидается, но при распечатке я получаю, например, для 291:

-784134397488903422

В соответствии сhttp://www.maths.surrey.ac.uk/hosted-sites/R.Knott/Fibonacci/fibCalcX.html, так должно быть:

2923602405716568564338475449381171413803636207598822186175234

Кажется, что-то идет не так с моимLongс, но я пока не уверен, что именно. Может ли кто-нибудь, пожалуйста, указать мне в правильном направлении?

ЗначенияMap записей:http://pastebin.com/uje07Ays

Ответы на вопрос(3)

Ваш ответ на вопрос