Iterativer Fibonacci-Algorithmus, der nach fib (47) ein falsches Ergebnis liefert

Ich verwende den iterativen FIB-Algorithmus, den ich unten kopiert habe. Ich habe diesen Algorithmus in Rosetta-Code gefunden und er gibt mir die richtige Antwort bis fib (46). Danach sind die Werte falsch. Weiß jemand, warum das so ist?

long long fibb(int n)
{
    int fnow = 0, fnext = 1, tempf;
    while(--n > 0) {
        tempf = fnow + fnext;
        fnow = fnext;
        fnext = tempf;
    }
    return fnext;   
}

Ausgabe

Fib(46) = 1836311903            <---- Correct
Fib(47) = 18446744092385799393   <---- Wrong (Correct Answer is: 2971215073)

Antworten auf die Frage(6)

Ihre Antwort auf die Frage