¿Qué es la recursividad de Java?
El escenario en el que una función o método se llama a sí mismo se conoce como recursividad y dicha función o método se conoce como función recursiva o método recursivo. Este enfoque siempre se utiliza para dividir problemas complejos en uno simple y más fácil de escribir. Un ejemplo sencillo es colocar dos espejos uno frente al otro y empezarán a reflejarse entre sí de forma recursiva, lo que podrás ver fácilmente.Recursión indirecta
El ejemplo anterior representa la recursividad indirecta , es decir, la función uno llama a la función dos y la función dos llama a la función uno.Recursión directa
Cuando un método se llama a sí mismo una y otra vez, se llama recursividad directa .Condición de detención
Ahora estará pensando si un método se llama a sí mismo una y otra vez, entonces seguramente enfrentará un error de desbordamiento de pila . Sí, tienes razón, como un bucle infinito, puede entrar en una recursión infinita. Debemos proporcionar una condición base o una condición de terminación para detener esta recursividad infinita, lo que se conoce como condición de detención, y esta condición siempre se proporciona dentro del método recursivo, que veremos en detalle en el siguiente ejemplo.Ejemplo de recursividad
class Recursion {
static int factorial( int n ) {
// base condition or termination condition
if (n != 0)
// here we are calling the recursive method
return n * factorial(n-1);
else
return 1;
}
public static void main(String[] args) {
// initializing the variables
int number = 5, result;
result = factorial(number);
System.out.println(number + " factorial = " + result);
// changing the value from 5 to 10
number = 10;
result = factorial(number); // recursive function call
System.out.println(number + " factorial = " + result);
}
}
Salida de ejemplo
5 factores = 120 10 factores = 3628800
En este ejemplo de método recursivo tenemos una función factorial llamada desde el método principal. Pasamos un valor de 5 para ver cuál es su factorial, que es 120. Esta función factorial se llama a sí misma nuevamente pasando el valor de 4, que nuevamente llama y pasa el valor de 3, y así sucesivamente, hasta que se cumpla la condición de detención. cumplió, que es el valor de 0. Lo mismo sucede cuando cambiamos el valor de 5 a 10.
GO TO FULL VERSION