Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

214
Vistas
Recibiendo este mensaje de error: Se excedió el tamaño máximo de la pila de llamadas

Estoy tratando de resolver este problema de leletcode . En este problema, básicamente necesito devolver la potencia de x.

Pero cuando ejecuto mi solución, devuelve este mensaje de error:

 RangeError: Maximum call stack size exceeded

Mi código:

 function myPow(base, exponent){ if(exponent === 0) { return 1; } else if(exponent < 0){ return (myPow(base,exponent + 1)/base); } else { return base * myPow(base,exponent-1); } } myPow(0.00001, 2147483647) // this test case is failing only I think

Código actualizado según la sugerencia de Luca Kiebel

 function myPow(base, exponent){ if(exponent === 0) { return 1; } else if(exponent < 0){ return (myPow(base,exponent + 1)/base); } else { return base ** myPow(base,exponent-1); } }

Alguien por favor explíqueme dónde estoy cometiendo un error.

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Está llamando a la función dentro de sí misma demasiadas veces, lo que hace que el motor JS piense que hay un problema y lo elimina antes de que consuma demasiada CPU/RAM.

Usar Math.pow o un bucle for simple (en lugar de recursividad) debería solucionar el problema.

Consulte el límite de tamaño de la pila de Javascript del navegador para saber cuántas veces puede llamar a una función dentro de otra

about 4 years ago · Juan Pablo Isaza Denunciar

0

Básicamente, obtiene ese error porque su función se llama a sí misma varias veces, hasta que se alcanza un límite de pila.

Puede intentar usar la función Math.pow() para lograr lo que está tratando de hacer.

about 4 years ago · Juan Pablo Isaza Denunciar

0

La recursividad no es una buena opción si desea ejecutar su propia función de aumento a la potencia, pero puede hacerlo en un ciclo muy simple

 function myPow(x,n){ var res = 1; for(var i=0;i<Math.abs(n);i++) res = n<0 ? res/x : res * x return res } console.log(myPow(2, 10), Math.pow(2,10), 2 ** 10) console.log(myPow(2, -2), Math.pow(2,-2), 2 ** -2) //console.log(myPow(0.00001, 2147483647), Math.pow(0.00001,2147483647), 0.00001 ** 2147483647)

Pero como puede ver en los ejemplos anteriores, simplemente está reinventando el cuando de Math.pow o el operador **

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda