Programa C para imprimir series de Fibonacci sin usar bucle

Dado un número N , la tarea es imprimir la serie de Fibonacci hasta el número N sin usar ningún bucle.
Ejemplos: 
 

Entrada: N = 5 
Salida: 0 1 1 2 3
Entrada: N = 10 
Salida: 0 1 1 2 3 5 8 13 21 34 
 

Método 1: Uso de la declaración goto: la declaración goto es una declaración de salto que a veces también se conoce como declaración de salto incondicional. Se puede usar para saltar de cualquier lugar a cualquier lugar dentro de una función. A continuación se muestran los pasos: 
 

  1. Declare 3 variables int a , b y sum . a es el primer valor, b es el segundo valor y la suma es la suma de a + b .
  2. Use la etiqueta para crear el ciclo con la instrucción goto.
  3. If-else está marcado si la condición es verdadera, entonces continúa el programa; de lo contrario, lo finaliza.
  4. Imprima sum porque el valor de sum es 0 ahora y luego use el concepto de intercambio como: 
     
sum = a + b
a = b
b = sum
  1.  

A continuación se muestra la implementación del enfoque anterior:
 

C

// C program to print fibonacci series
// using goto statement
#include <stdio.h>
 
// Function to print Fibonacci Number
// using goto statement
void fibUsingGoto(int N)
{
    int a = 0, b = 1, sum = 0;
lableFib:
 
    // Print to series first N term
    if (N != 0) {
 
        // Print series
        printf(" %d", a);
 
        // Create next term
        sum = a + b;
        a = b;
        b = sum;
 
        // Decrement N
        N--;
 
        // Jump to lableFib
        goto lableFib;
    }
}
 
// Driver Code
int main()
{
    // Given number N
    int N = 10;
 
    // Function Call
    fibUsingGoto(N);
 
    return 0;
}
Producción: 

0 1 1 2 3 5 8 13 21 34

 

Complejidad de Tiempo: O(N)  
Espacio Auxiliar: O(N)
Método 2 – Uso de Recursión : 
 

  1. Declare tres variables a, b, sum como 0, 1 y 0 respectivamente.
  2. Llame recursivamente a la función fib() con el primer término, el segundo término y la suma actual de la serie de Fibonacci.
  3. Después de que la función principal llame a la función fib() , la función fib() se llamará a sí misma hasta que se calculen los números N de la serie de Fibonacci.
  4. Actualice el valor de a, b y sum en cada llamada recursiva como se muestra a continuación: 
     
sum = a + b
a = b
b = sum
  1.  

A continuación se muestra la implementación del enfoque anterior:
 

C

// C program to print fibonacci
// series using recursion
#include <stdio.h>
 
// Recursive function to print
// Fibonacci series
void fib(int a, int b, int sum, int N)
{
 
    // Print first N term of the series
    if (N != 0) {
 
        printf(" %d", a);
        sum = a + b;
        a = b;
        b = sum;
 
        // Decrement N
        N--;
 
        // recursive call function fib
        fib(a, b, sum, N);
    }
}
 
// Driver Code
int main()
{
    // Given Number N
    int N = 10;
 
    // First term as 0
    // Second term as 1 and
    // Sum of first and second term
    fib(0, 1, 0, N);
    return 0;
}
Producción: 

0 1 1 2 3 5 8 13 21 34

 

Complejidad temporal: O(N)  
Espacio auxiliar: O(N)
 

Publicación traducida automáticamente

Artículo escrito por mukulsomukesh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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