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

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

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 Report

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 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!