acabo de hacer el programa con un algoritmo muy rapido pero existe un error no fatal que es dificilmente identificable
aqui va:
#include <stdio.h>
int FIB_AUX(int, int, int );
main()
{
int n, p = 0;
printf("ingrese la cantidad de terminos de la serie y disfrute la velocidad:");
scanf("%d", &n);
while(p <= n){
printf("El %d-numero de la serie Fibonacci es:%d\n", p, FIB_AUX(p, 1, 0));
p++;
}
getchar();
getchar();
return (0);
}
/*En el caso de Fibonacci esa ineficacia es fácilmente superable: Precisamente
se define una función auxiliar que tiene una acumulación de argumentos para
retener los valores previamente calculados. La función principal invoca a esa
función auxiliar con los argumentos iniciales apropiados.*/
int FIB_AUX(int n, int f1, int f0)
{
if(n == 0)
return (f0);
else
return FIB_AUX(n - 1, f1 + f0, f1);
}
/*Se supone que debería funcionar para cualquier valor entero positivo
incluyendo el cero ya que se pasó de una
doble recursivadad que hacia una cantidad exponencial de invocaciones a una de
una sola recursividad cuyas invocaciones es directamente proporcional al termino
que se pide, pero en el término n = 48 existe un "error no fatal" dificil de
identificar,¡intentalo!, si me puedes decir el error no fatal me harias un gran
favor
Finalmente queda a tu criterio, pero insisto ¡intentalo!*/
¿Dónde está el error ?
este algoritmo es el usado por derive asi que no entiendo donde falla