C Recursion (función recursiva)

Tabla de contenido

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 prevenirla.

Para evitar la recursividad infinita, se puede usar la instrucción if… else (o un enfoque similar) donde una rama hace la llamada recursiva y otra no.

Ejemplo: suma de números naturales mediante recursividad

 #include 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

 Ingrese un número entero positivo: 3 suma = 6

Inicialmente, sum()se llama desde la main()función con el número pasado como argumento.

Supongamos que el valor de n dentro sum()es 3 inicialmente. Durante la siguiente llamada a la función, se pasa 2 a la sum()función. Este proceso continúa hasta que n es igual a 0.

Cuando n es igual a 0, la ifcondición falla y la elseparte se ejecuta devolviendo la suma de los enteros en última instancia a la 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 utilizar la recursividad en problemas como el cruce de árboles.

Articulos interesantes...