English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En este tutorial, aprenderás a escribir funciones recursivas en C utilizando ejemplos de programación en C.
La función que se llama a sí misma se llama función recursiva y esta técnica se llama recursión.
void recurse() { ... .. ... recurse(); ... .. ... } int main() { ... .. ... recurse(); ... .. ... }
La recursión continúa hasta que se cumplan ciertas condiciones para evitar la recursión.
Para evitar la recursión infinita, se puede realizar una llamada recursiva en una rama y en la otra no se realiza llamada recursiva.if ... else statement.
#include <stdio.h> int sum(int n); int main() { int number, result; printf("Por favor, introduzca un entero positivo: "); scanf("%d", &number); result = sum(number); printf("sum = %d", result); return 0; } int sum(int n) { if (n != 0) //La función sum() se llama a sí misma return n + sum(n-1); else return n; }
Resultado de salida
Por favor, introduzca un entero positivo:3 sum = 6
Inicialmente, se llama a sum() desde la función main() y se pasa number como parámetro.
Supongamos que el valor inicial de n en sum() es3. Durante la siguiente llamada a la función, se2Se pasa al sum() función. Este proceso continúa hasta que n es igual a 0.
Cuando n es igual a 0, el condicional if falla, se ejecuta la parte else y finalmente se devuelve el entero y a la función main().
La recursividad hace que el programa sea elegante. Sin embargo, si la eficiencia es crucial, utilice bucles en lugar de recursividad, ya que la recursividad suele ser mucho más lenta.
Dicho esto, la recursividad es un concepto importante. Se utiliza a menudo en estructuras de datos y algoritmos. Por ejemplo, se utiliza recursivamente en problemas como el análisis de árboles.