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 recursividad 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) {
if (k > 0) {
return k + sum(k - 1);
} else {
return 0;
}
}
int main() {
int result = sum(10);
cout << result;
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 más pequeño 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 + ( 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 cuidado con la recursividad, ya que puede ser bastante fácil escribir una función que nunca finaliza, 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.