Число при f (93) в ряду Фибоначчи имеет отрицательное значение, как?
Я пытаюсь распечатать ряд Фибоначчи до 'N' чисел. Все работает согласно ожиданиям до f (92), но когда я пытаюсь получить значение f (93), значения получаются отрицательными: «-6246583658587674878». Как это могло быть возможно? В чем ошибка в логике ниже?
public long fibo(int x){
long[] arr = new long[x+1];
arr[0]=0;
arr[1]=1;
for (int i=2; i<=x; i++){
arr[i]=arr[i-2]+arr[i-1];
}
return arr[x];
}
f(91) = 4660046610375530309
f(92) = 7540113804746346429
f(93) = -6246583658587674878
Это из-за типа данных? Какой еще тип данных я должен использовать для печати рядов Фибоначчи до N чисел? N может быть любым целым числом в диапазоне [0,10 000 000].