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:
- 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 .
- Use la etiqueta para crear el ciclo con la instrucción goto.
- If-else está marcado si la condición es verdadera, entonces continúa el programa; de lo contrario, lo finaliza.
- 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
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; }
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 :
- Declare tres variables a, b, sum como 0, 1 y 0 respectivamente.
- 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.
- 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.
- 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
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; }
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