todos. Agradecería si alguien pudiera aclarar lo siguiente.
Tenemos una función factorial básica y un bucle for con un bloque try catch que ejecuta la función hasta que aparece el error "Se supera el tamaño máximo de la pila de llamadas".
Cuando se ejecuta el ciclo while max N es consistentemente 15699 .
Sin embargo, cuando se ejecuta sin bucle for , el tamaño máximo de la pila de llamadas es 11416 .
Todo lo que sea mayor que el número 11416 arroja el error "Se excedió el tamaño máximo de la pila de llamadas".
Asumiría que la función factorial podrá ejecutarse con cualquier valor inferior a 15699, pero no es el caso.
Consulte el código y las capturas de pantalla de los resultados a continuación. Código ejecutado en la terminal IDEA, nodo -v - 14.16.1.
Estaría muy agradecido si alguien pudiera aclararme eso. Muchas gracias de antemano Katia
Max N de abajo es 15699
const nFactorial = (n) => { if (n === 1) { return 1; } return n * nFactorial (n - 1); }; let n = 1; while (n <= 100000) { try { nFactorial (n); n++; } catch (e) { console.log(`${e.message} with N = ${n}`); break; } }El siguiente código solo se ejecuta con N = 11416 y arroja cualquier valor mayor que ese número.
const nFactorial = (n) => { if (n === 1) { return 1; } return n * nFactorial (n - 1); }; const n = 11416; try { nFactorial (n); } catch (e) { console.log(`${e.message} with N = ${n}`); }