¿Cómo implementar recursión en Java?
¿Cómo implementar correctamente la recursión en Java? Problema con StackOverflowError
¡Hola a todos! Estoy intentando entender la recursión en Java, pero constantemente me encuentro con el error StackOverflowError. Por favor, indíquenme cómo organizar correctamente una llamada recursiva a un método para evitarlo.
Escribí una función simple para calcular el factorial de un número, pero con el valor 10000 el programa falla. Aquí está mi código:
public class RecursionTest {
public static int factorial(int n) {
if (n == 0) {
return 1;
}
return n * factorial(n - 1);
}
public static void main(String[] args) {
System.out.println(factorial(10000)); // StackOverflowError
}
}Ya intenté:
- Aumentar el tamaño del stack mediante parámetros de JVM (
-Xss2m), pero esto solo retrasa el problema, no lo resuelve. - Reemplazar
intporlongyBigInteger— el resultado es el mismo, el error en
No answers yet.
Inicia sesión para dejar una respuesta
Blogs