Visitas

lunes, 24 de septiembre de 2007

Fibonacci recursivo en c.

Esta tarde mientras recordaba algo del lenguaje c, me dio por crear este programa que hace un uso recursivo de la serie de fibonacci.

Descripcion del programa:
Entrada: Un entero al cual ud se le de la gana de digitar.
Salida: Numero de fibonacci para el entero que ud digitó.

Ejemplo:


Digite un entero: 9

Fibonacci(9)= 34


Codigo del programa:

#include
/* fibonacci recursivo
c7b3r
2007
*/
int FibRcs(int n)
{
if(n==1 || n==0)

return n;

else
return FibRcs(n-1)+FibRcs(n-2);
}

int main()
{
int n;
printf("Digite un entero: ");
scanf("%d",&n);
printf("\nFibonacci(%d)= %d\n\n ",n,FibRcs(n));
}


ahhh no me culpen, no tenia nada mas que hacer!!!

4 comentarios:

Flaco dijo...
Este comentario ha sido eliminado por el autor.
Flaco dijo...

#include cstdio
/* fibonacci recursivo
flacman :P
2007
*/
int FibRcs(int n)
{
return (n<1)?n:FibRcs(n)+FibRcs(--n);
}

int main()
{
int n;
printf("Digite un entero: ");
scanf("%d",&n);
printf("\nFibonacci(%d)= %d\n\n ",n,FibRcs(--n));
}

c7b3r dijo...

Jejejej ...

bueno, pensar recursivamente no es tan breve como uno se imagina.

NeoEcoS dijo...

double fibR(int x, double r[]){
if(x==0){
r[0]=1;
return 1;
}
else if(x==1){
fibR(0, r);
r[1]=1;
return 1;
}
else{
fibR(x-1, r);
r[x] = r[x-1] + r[x-2];
return r[x];
}
}


Bueno, hoy tuve el mismo problema pero en la noche, me trasnoche pensando como hacer este algoritmo recursivo y eficiente, puesto que en la forma como lo planteas es muuuy lento, ya que calculas n veces