Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

224
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!