Estaba tomando una prueba y la pregunta era: hacer una función para un número dado N sumar todos los números pares del 2 al N.
Hago esta función, pero quiero saber cómo puedo mejorarla, como si ingreso un número impar.
por el ejemplo que me dan:
la entrada fue: 10 y la salida fue 30.
mi función:
function sumUp(N) { var sum = 0 var sumTemp = 0 const start = N for(let i = 1; i < N ; i++) { if(N === 2) { sum = 2 } else { if(i%2 === 0) { sumTemp = sumTemp + i } } sum = start + sumTemp } return console.log(sum) } sumUp(10);gracias de antemano.
Sí, puedes hacerlo mejor.
function sumUp(N) { var sum = 0 for (var i = 2; i < N; i += 2) { sum += i } return sum } console.log(sumUp(7));puedes hacerlo usando esta simple función:
function solve(N) { N = N - N % 2; let odd = N / 2; let even = N * (N + 1) / 2 - odd * odd; return Math.floor(even); }Funciona en tiempo O(1)
Una mejor función sería algo como lo siguiente:
function sumUp(N) { let sum = 0 for(let i = 2; i <= N ; i+=2) { sum += i } return console.log(sum) }Funciona, visto aquí: