Secuencia de Fibonacci – Algoritmo C/C++

shape
shape
shape
shape
shape
shape
shape
shape

La sucesión de Fibonacci se da en el siguiente orden [latex] Fibonacci = 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55 . . .[/latex]. El algoritmo para calcular el enésimo elemento viene dado por: [latex] N = N – 1 + N – 2 [/latex], es decir, el enésimo elemento es igual a la suma de los dos elementos que le preceden, por ejemplo:

Dada la secuencia de Fibonnaci [latex] 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55. . .[/latex] calcular el 3er elemento de la secuencia:

Siempre tenemos en cuenta el valor de los dos primeros términos, de forma que [latex]X = 0[/latex] (primer elemento) y [latex]Z = 1[/latex]. Entonces el tercer elemento de la secuencia será igual a la suma de los dos elementos anteriores, en cuyo caso [latex] N = X + Z [/latex], [latex]N = 0 + 1 [/latex], [latex]N[/latex]= 1.

Programa en lenguaje C que calcula el enésimo término de la sucesión de Fibonacci:

#include  

long int fibonacci(int n);
void main()
{
//Secuencia de Fibonacci 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55...
  int n;
  printf ("Elegir posición: ");
  scanf("%d", &n);
  printf("Posición %d de la secuencia fibonnaci: %d", n, fibonacci(n));
}

long fibonacci(int n)
{
  int cont;
  long int x = 0, z = 1;
    
  if(n % 2 == 0)
  {
  for(cont = 2; cont != n; cont = cont + 2)
  {
  x = x + z;
  z = x + z;
  }
  devolver z;
  }
  si no
  {
  for(cont = 1; cont != n; cont = cont + 2)
  {
  x = x + z;
  z = x + z;
  }
  devolver x;
  }
}

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *