lunes, 15 de febrero de 2010

Fibonacci con recursividad en C

Bueno otra cosa mas del año que aprendí a programar en C.
Aquí la función y un ejemplo de utilización:


//declaracion de librerias
#include
#include


//declaracion de funciones
int fibonachi(int limite, int numero,int anterior);


/************************************************************************
Función main
*************************************************************************/
int main(int argc, char *argv[]){
// variable en la que guardaré el el numero pedido al usuario
unsigned int numerosFibonachi;

// pedimos y recojemos un numero
printf("Introduzca hasta que numero de la serie fibonachi quiere ver: ");
scanf("%d",&numerosFibonachi);

// llamamos a la funcion pasandole el numero de numeros de la serie que queremos ver un 0 y 1
// que son los numeros con los que empezará
fibonachi(numerosFibonachi,0,1);


//fin del programa
printf("\n");
system("pause");
return 0;
}
/********************************************************************
Función fibonachi
Muestra numeros de la serie fibonachi utilizando recursividad
Argumentos de entrada
int limite - numero de numeros ha mostrar de la serie
int anterior - siempre 0 - para que tenga un punto de partida
para empezar a calcular la serie
int numero - siempre 1
********************************************************************/
int fibonachi(int limite, int anterior, int numero){
printf("\n %d \t %d",limite,numero);
if (limite!=1){
limite--;
fibonachi(limite,numero+anterior,numero);
}
return 1;
}


PD para autores: para poner código es:
<pre class=”code”>el codigo aqui</pre>

Aun no he metido los scripts Highlighter para colorear el código por no hacer mas pesada de lo que ya es la pagina así que con esto nos apañamos bien.
Esta entrada es mas una excusa para probar lo de poner código en el blog que otra cosa XD.



3 comentarios:

Francisco García Díaz dijo...

Bien por poner la recursividad con fibonacci y bien por tener ya code para nuestros post

Marco dijo...

hay un error en el código, en la función que se hace llamar a sí misma, en lugar de numero, debe de cambiarse a la variable anterior como se muestra en el código siguiente:

int fibonachi(int limite, int anterior, int numero){
printf("\n %d \t %d",limite,anterior);
if (limite!=1){
limite--;
fibonachi(limite,numero+anterior,anterior);
}
return 1;
}
esta es la forma correcta, saludos!

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