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)