var num = prompt("Enter a number"); for (var sum = 0; sum <= num; sum++) { sum = sum + 1; } document.write(sum);ejemplo, cuando ingreso 6 en el indicador, sumará 1+2+3+4+5+6 =21. pero a partir de ahora solo puedo imprimir 123456 en lugar de 21.
El problema con su código es que está usando sum para el ciclo y para la respuesta. Eso es estropearlo todo. Puede usar una variable para el bucle y otra variable para la suma.
Tal vez eso funcione para ti.
var num = prompt("Enter a number"); var sum = 0; for(var i = 1; i <= num; i++) { sum += i; } document.write(sum);La entrada recibida por usted es una cadena y es por eso que se está contactando en lugar de agregar a la suma.
Esta es la mejor solución óptima ya que su complejidad temporal es O(3) veces solamente.
entonces, es rápido. en lugar de con fuerza bruta que es o(n);
var num = prompt("Enter a number"); function total(n) { return n * (n + 1) / 2; } document.write(total(parseInt(num)));Aquí hay algunos cambios en su código.
nota : (+) se usa para convertir el tipo de número de cadena en tipo de número
var num = prompt("Enter a number"); const sum = Array.from(Array(+num + 1).keys()).reduce((prev, curr) => prev += curr, 0); document.write(sum);