Die Zahl bei f (93) in der Fibonacci-Reihe hat einen negativen Wert. Wie?

Ich versuche, Fibonacci-Serien bis zu 'N' Zahlen auszudrucken. Alles funktioniert wie erwartet bis f (92), aber wenn ich versuche, den Wert von f (93) zu erhalten, werden die Werte negativ: "-6246583658587674878". Wie könnte das möglich sein? Was ist der Fehler in der Logik unten?

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

Liegt das am Datentyp? Welchen anderen Datentyp sollte ich zum Drucken von Fibonacci-Reihen mit bis zu N Zahlen verwenden? N kann eine beliebige ganze Zahl im Bereich [0..10.000.000] sein.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage