Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/06/2012, 02:36
Fw190
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 13 años, 10 meses
Puntos: 73
Respuesta: Serie de fibonacci

Parece como si te estuviera tomando el tipo unsigned long long int (64 bits) como unsigned long int (32 bits), con el tipo unsigned long int puedes alcanzar hasta el término 47 de la sucesión (el que tienes marcado), a partir de ahí tienes desbordamiento y tendrás valores no válidos (incluso negativos, si utilizases tipos con signo).

Comprueba el tamaño del tipo unsigned long long int, te lo digo porque (aunque no indicas compilador ni sistema operativo que usas) hay algún compilador que acepta el tipo long long int pero realmente te lo toma como long int, y alguno hay que no reconoce el tipo unsigned long long int pero sí el long long int.

Por cierto, que con el tipo unsigned long long int puedes llegar hasta el término 93 de la sucesión (a partir de ahí vuelves a tener desbordamiento). Veo también que a partir del término 74 los valores son incorrectos, supongo que los has calculado empleando tipos double, que tienen 15-16 dígitos de precisión y a partir de ahí, aunque les pidas más cifras decimales, te van a presentar ceros.

Si necesitas más precisión, tendrás que buscar alguna librería de precisión arbitraria. También hay compiladores que admiten un tipo int128.

Saludos,