Dominando la Recursividad en C: Buenas Prácticas y Condiciones de Salida
La recursividad es el proceso de repetir elementos de forma auto-similar. En lenguajes de programación, si un programa permite llamar a una función dentro de la misma función, se llama llamada recursiva de la función.
void recursion() {
recursion(); /* la función se llama a sí misma */
}
int main() {
recursion();
}
El lenguaje C soporta recursividad, es decir, una función puede llamarse a sí misma. Pero al usar recursividad, los programadores deben tener cuidado de definir una condición de salida de la función, de lo contrario entrará en un bucle infinito.
Las funciones recursivas son muy útiles para resolver muchos problemas matemáticos, como calcular el factorial de un número, generar la serie de Fibonacci, etc.
Factorial de un Número
El siguiente ejemplo calcula el factorial de un número dado usando una función recursiva:
#include <stdio.h>
unsigned long long int factorial(unsigned int i) {
if (i <= 1) {
return 1;
}
return i * factorial(i - 1);
}
int main() {
int i = 12;
printf("Factorial of %d is %d\n", i, factorial(i));
return 0;
}
Al compilar y ejecutar, produce:
Factorial of 12 is 479001600
Serie de Fibonacci
El siguiente ejemplo genera la serie de Fibonacci para un número dado usando una función recursiva:
#include <stdio.h>
int fibonacci(int i) {
if (i == 0) {
return 0;
}
if (i == 1) {
return 1;
}
return fibonacci(i-1) + fibonacci(i-2);
}
int main() {
int i;
for (i = 0; i < 10; i++) {
printf("%d\t\n", fibonacci(i));
}
return 0;
}
Al compilar y ejecutar, produce:
0
1
1
2
3
5
8
13
21
34
Lenguaje C
- C# Hola Mundo – Construyendo su primera aplicación en C#
- Entendiendo palabras clave e identificadores en C#: Reglas, listas y mejores prácticas
- Domine variables y tipos de datos primitivos en C#: Guía completa
- Operadores en C# – Guía completa de operadores en C#
- Dominando operadores bit a bit y de desplazamiento en C#: Guía completa
- Fundamentos de C#: Entrada y salida esenciales
- Expresiones, sentencias y bloques en C#: Guía completa con ejemplos prácticos
- Dominando los comentarios en C#: Tipos, mejores prácticas y documentación XML
- Sentencia break en C#: Cómo y cuándo usarla
- Dominando la sentencia continue en C#: Cómo saltar iteraciones de bucles eficazmente
- Dominando arrays en C#: Declaración, inicialización y operaciones