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

198
Visualizações
La fórmula matemática que se supone que devuelve números enteros devuelve decimales (SOLUCIONADO)
for (i = 0; i < 100; i++) { result.innerHTML += 'when "i" is ' + i + ", the result is "; result.innerHTML += (i + seed) * (i + seed + 1) / 2 - seed + 1 + ";<br>"; }

cuando seed = 1; esta ecuación debería producir resultados de números enteros, siendo el primero 1, pero cuando se ejecuta el código, el primer resultado es 5.5 y continúa fallando desde allí. Revisé la ecuación muchas veces y resolví el problema en Desmos, pero no puedo encontrar la respuesta.

He depurado las entradas varias veces, pero son las entradas correctas de números enteros. El primer resultado, donde i = 0 y seed = 1 debería generar 1 , pero en su lugar genera 5.5 .

El resultado debería ser (0 + 1) * (0 + 1 + 1) / 2 - 1 + 1 , que se simplifica a 1 * 2 / 2 , que es igual a 1, pero de alguna manera la computadora no lo calcula de esta manera. Usé las reglas de PEMDAS para intentar obtener el resultado correcto.

EDITAR: La solución fue parseInt(); . Cuando se estaba haciendo el cálculo, concatenó dos unos en lugar de sumarlos, y cuando se dividió por 2, dio 5,5. Fue porque obtuve el valor seed de un elemento de entrada HTML.

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

0

No sé de dónde vino esa fórmula matemática, pero acabo de declarar el resultado inicial como cero y la semilla como 1. El primer número de resultado que obtengo es 01.

 let result = 0; let seed = 1; for (let i = 0; i < 100; i++) { result += ((i + seed) * (i + seed + 1)) / 2 - seed + 1 + '; '; } console.log(result);
about 4 years ago · Juan Pablo Isaza Relatório

0

Utilice parseInt , Math.ceil o Math.floor .

La división siempre dará como resultado un valor decimal (para valores que no son completamente divisibles como 3/2, 4/3, etc.).

parseInt resolvería su problema.

 result.innerHTML += parseInt((i + seed) * (i + seed + 1) / 2 - seed + 1) + "; ";
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