Explorando la Secuencia de Fibonacci: Implementación Iterativa y Recursiva en C

La secuencia de Fibonacci es una serie de números en la que cada número es la suma de los dos anteriores, comenzando con 0 y 1. Matemáticamente, la secuencia se define como (F(n) = F(n-1) + F(n-2)), con valores iniciales (F(0) = 0, F(1) = 1). Esta secuencia lleva el nombre de Leonardo de Pisa, conocido como Fibonacci, quien introdujo esta serie a las matemáticas occidentales en el siglo XIII, aunque sus propiedades ya eran conocidas en la India antigua.

La secuencia de Fibonacci es famosa no solo en matemáticas, sino también en áreas como la informática, la teoría de juegos, la economía, y la biología, debido a su aparición frecuente en fenómenos naturales y estructuras, incluyendo la disposición de las hojas en un tallo, la fructificación en las piñas, y la disposición de las semillas en el girasol.

Implementación en C

Para calcular la secuencia de Fibonacci en C, se pueden utilizar diferentes enfoques, como la iteración o la recursividad. A continuación, se muestra cómo implementar ambos métodos en C.

Método Iterativo

El método iterativo es eficiente y directo. Utiliza un bucle para calcular sucesivamente cada número de la secuencia hasta alcanzar el término deseado.

#include <stdio.h>

// Función para calcular el n-ésimo término de Fibonacci de forma iterativa
int fibonacciIterativo(int n) {
    int primero = 0, segundo = 1, siguiente;
    for (int i = 0; i < n; i++) {
        if (i <= 1) {
            siguiente = i;
        } else {
            siguiente = primero + segundo;
            primero = segundo;
            segundo = siguiente;
        }
    }
    return siguiente;
}

int main() {
    int n = 10; // Calcular hasta el décimo término
    printf("El término %d de la secuencia de Fibonacci es: %d\n", n, fibonacciIterativo(n));
    return 0;
}

Método Recursivo

La recursividad es una forma elegante pero menos eficiente de calcular la secuencia de Fibonacci, ya que implica muchas llamadas redundantes a la función con los mismos valores.

#include <stdio.h>

// Función para calcular el n-ésimo término de Fibonacci de forma recursiva
int fibonacciRecursivo(int n) {
    if (n <= 1) {
        return n;
    } else {
        return fibonacciRecursivo(n-1) + fibonacciRecursivo(n-2);
    }
}

int main() {
    int n = 10; // Calcular hasta el décimo término
    printf("El término %d de la secuencia de Fibonacci es: %d\n", n, fibonacciRecursivo(n));
    return 0;
}

Conclusión

La secuencia de Fibonacci es un concepto fascinante que encuentra aplicaciones en diversas disciplinas. Su implementación en C puede realizarse de manera eficiente mediante métodos iterativos o de forma más conceptual (aunque con mayor costo computacional) mediante recursividad. Elegir entre un método u otro depende del contexto específico de uso, considerando la eficiencia y la claridad del código. Este ejercicio no solo ayuda a entender mejor la secuencia de Fibonacci, sino que también ofrece una oportunidad para practicar conceptos fundamentales de programación en C, como bucles y recursividad.

person encoding in laptop
Photo by Lukas on Pexels.com

Deja un comentario

Información básica sobre protección de datos Ver más

  • Responsable: Tomas Gonzalez.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

error: Content is protected !!

Descubre más desde InfoGonzalez - Blog de formador e informático

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo

Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad
Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.