CODIGO:
#includeint fibonacci (int n) { if(n <= 1) return n; else return (fibonacci(n - 1) + fibonacci(n - 2)); } int main (void) { int x; printf("Fibonacci -> "); scanf("%d", &x); printf("Fibonacci (%d) = %d", x, fibonacci(x)); return 0; }
¿Cómo funciona el código?
Una vez mas centremonos en el bloque recursivo
int fibonacci (int n) { if(n <= 1) return n; else return (fibonacci(n - 1) + fibonacci(n - 2)); }
Supongamos que int n = 5, entonces:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfK9IQMFQ1yH12ICtj8l1YOwIoM3MNNWSIyQMnvCMbP29YTER_Mi0QsfC1xJF9bnxoqJZpVwcGIlAXbdu0iUbTd2TnsMzEulC0XMVFAc5UjXtnPQfemtEFBvp6MMw5MqvAvdyWEtYnLQhG/s400/f1.png)
Aquí comienza la regresión
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih2QCl4gPGEwik5ieAXn9Cw8foloYDyTvRXaFZntNxZY9h0FfGEhLziGknjWQ5PDTK0s3aQ26CErWYws-jjTm2VE5QBJoVaonDqMWCGjHjRA9srLOz6AQC9cBZ_iIPJfJK9JxyPsZHFy4h/s400/f2.png)
Asi la función main imprime el valor final de la sucesión fibonacci de 5, es decir Fibonacci (5) = 5
DESCARGA: fibonacci.c
Muy bien. En particular es bueno que explicas el flujo de control. Te pongo cinco puntos para el lab por esta entrada.
ResponderEliminar