MEJOR SITIO PARA DESARROLLADORES WEB
C Idioma. W3Schools en español. Lecciones para principiantes

Ua En De

C Recursividad


Recursividad

La recursividad es la técnica de hacer que una función se llame a sí misma. Esta técnica proporciona una manera de dividir problemas complicados en problemas simples que son más fáciles de resolver.

La recursión puede ser un poco difícil de entender. La mejor manera de descubrir cómo funciona es experimentar con él.


Ejemplo de recursividad

Sumar dos números es fácil de hacer, pero sumar un rango de números es más complicado. En el siguiente ejemplo, la recursividad se utiliza para sumar un rango de números dividiéndolo en la simple tarea de sumar dos números:

Ejemplo

int sum(int k);

int main() {
  int result = sum(10);
  printf("%d", result);
  return 0;
}

int sum(int k) {
  if (k > 0) {
    return k + sum(k - 1);
  } else {
    return 0;
  }
}
Inténtalo tú mismo »

Ejemplo explicado

Cuando se llama a la función sum(), agrega el parámetro k a la suma de todos los números menores que k y devuelve el resultado. Cuando k se convierte en 0, la función simplemente devuelve 0. Cuando se ejecuta, el programa sigue estos pasos:

10 + sum(9)
10 + ( 9 + sum(8) )
10 + ( 9 + ( 8 + sum(7) ) )
...
10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + sum(0)
10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + 0

Dado que la función no se llama a sí misma cuando k es 0, el programa se detiene allí y devuelve el resultado.

El desarrollador debe tener mucho cuidado con la recursividad, ya que puede ser bastante fácil escribir una función que nunca termina, o una que utiliza cantidades excesivas de memoria o potencia del procesador. Sin embargo, cuando se escribe correctamente, la recursividad puede ser un enfoque de programación muy eficiente y matemáticamente elegante.


Explicación de la recursividad de la inteligencia artificial

¿Qué es la recursividad?

Recursión es una técnica de programación que permite que un programa se llame a sí mismo. La recursividad se puede utilizar para resolver problemas complejos que son difíciles o imposibles de resolver con otros métodos.

Ejemplo

int factorial(int n) {
   if (n == 0) {
      return 1;
   } else {
      return n * factorial(n - 1);
   }
}

Este programa calcula el factorial de un número. El factorial del número n es igual al producto de todos los números enteros del 1 al n.

La recursividad se puede utilizar para resolver muchos problemas diferentes.

Aquí hay algunos ejemplos:

  • Cálculo del factorial
  • Buscar elementos en una matriz
  • Descenso recursivo
  • Cálculo de Pi

Recursión en el C

  • La recursividad en C se implementa mediante funciones
  • Una función que se llama a sí misma se llama función recursiva
  • Una función recursiva debe tener una condición de terminación que detenga la recursividad

Lados negativos de la recursividad

  • La recursividad puede ser difícil de entender y escribir
  • La recursividad puede provocar desbordamientos de pila

Conclusión

La recursión es una poderosa técnica de programación que se puede utilizar para resolver problemas complejos. Sin embargo, la recursividad puede resultar difícil de entender y escribir.