Algoritmo iterativo de Fibonacci que me da un resultado incorrecto después de fib (47)
Estoy usando el algoritmo iterativo fib que he copiado a continuación. Encontré este algoritmo en el código de Rosetta y me da la respuesta correcta hasta fib (46). Después de eso, los valores están equivocados. ¿Alguien sabe por qué este es el caso?
long long fibb(int n)
{
int fnow = 0, fnext = 1, tempf;
while(--n > 0) {
tempf = fnow + fnext;
fnow = fnext;
fnext = tempf;
}
return fnext;
}
Salida:
Fib(46) = 1836311903 <---- Correct
Fib(47) = 18446744092385799393 <---- Wrong (Correct Answer is: 2971215073)