Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

171
Visualizações
¿Cómo creo una función, que toma un parámetro, un número, y devuelve la suma de números de 1 -> número, sin crear un ciclo infinito?

¿Cómo creo una función, que toma un parámetro, un número, y devuelve la suma de números de 1 -> número, sin crear un ciclo infinito?

Ejemplo:
función(100)
= 5050

He llegado tan lejos como para crear un bucle for finito así:

 let sum = 0 for (let i = 1; i <= 100; i++) { sum = sum + i;

//gracias de antemano

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Bueno, parece que tiene la premisa básica del 1 al 100: está recorriendo el valor y resumiendo. Para ponerlo en un formato un poco más agradable:

 const n = 100; console.log(GetSumTo(n)) function GetSumTo(x) { var sum = 0; for (var i = 1; i <= x; i++) { sum = sum + i; } return sum; }

Otra opción sería hacerlo recursivamente:

 const n = 100; console.log(RecursiveSum(n, 0)); function RecursiveSum(val, sum) { if (val > 1) { sum = val + RecursiveSum(val - 1, sum); } else { sum = val; } return sum; }

Sin embargo, estos pueden llevar mucho tiempo cuando se trata de valores grandes. Usando un poco de matemáticas sofisticadas (explicado aquí mejor de lo que puedo explicarlo: https://math.stackexchange.com/questions/1100897/sum-of-consecutive-numbers ), podemos encontrar que la suma de números consecutivos puede ser calculado con una fórmula más fácil: (n(n + 1))/2

Lo que significa que podemos escribir una función para hacer eso y ahorrar tiempo de ejecución:

 const n = 100; console.log(QuickSum(n)); function QuickSum(n) { var sum = n + 1; sum = sum * n; sum = sum / 2; //You could shrink the calculation to sum = (n * (n + 1)) / 2 I just did it over a few lines for readability return sum; };

Ninguna de estas opciones da como resultado un bucle infinito.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda