C Recursividad
C Recursividad
En este tutorial, aprenderá a escribir funciones recursivas en programación C con la ayuda de un ejemplo.
Una función que se llama a sí misma se conoce como función recursiva. Y esta técnica se conoce como recursividad.
¿Cómo funciona la recursividad?
void recurse() { ... .. ... recurse(); ... .. ... } int main() { ... .. ... recurse(); ... .. ... }
La recursividad continúa hasta que se cumple alguna condición para evitarla.
Para evitar la repetición infinita, se puede usar la declaración if...else (o un enfoque similar) donde una rama realiza la llamada recursiva y la otra no.
Ejemplo:Suma de Números Naturales Usando Recursión
#include <stdio.h>
int sum(int n);
int main() {
int number, result;
printf("Enter a positive integer: ");
scanf("%d", &number);
result = sum(number);
printf("sum = %d", result);
return 0;
}
int sum(int n) {
if (n != 0)
// sum() function calls itself
return n + sum(n-1);
else
return n;
}
Salida
Enter a positive integer:3 sum = 6
Inicialmente, el sum()
se llama desde el main()
función con número pasado como argumento.
Supongamos que el valor de n dentro de sum()
es 3 inicialmente. Durante la próxima llamada de función, 2 se pasa al sum()
función. Este proceso continúa hasta n es igual a 0.
Cuando n es igual a 0, el if
la condición falla y el else
la parte se ejecuta devolviendo la suma de enteros finalmente al main()
función.
Ventajas y desventajas de la recursividad
La recursividad hace que el programa sea elegante. Sin embargo, si el rendimiento es vital, utilice bucles en su lugar, ya que la recursividad suele ser mucho más lenta.
Dicho esto, la recursividad es un concepto importante. Se utiliza con frecuencia en la estructura de datos y algoritmos. Por ejemplo, es común usar la recursividad en problemas como el recorrido de un árbol.
Lenguaje C
- C# Hello World:su primer programa en C#
- Identificadores y palabras clave de C#
- Variables de C# y tipos de datos (primitivos)
- Operadores de C#
- Operadores C# Bitwise y Bit Shift
- Entrada y salida básica de C#
- Expresiones, declaraciones y bloques de C# (con ejemplos)
- Comentarios de C#
- Declaración de cambio de C#
- C# ternario (? :) Operador
- Series de Fibonacci en Java utilizando el programa Recursion and Loops