Help with summation

Asked

Viewed 128 times

1

I want to write an algorithm, in JAVASCRIPT, that reads an N number and makes the sum only of even numbers

var n1, n2, n3, soma;
n1 = parseInt(prompt("Digite o 1º Número :"));
n2 = parseInt(prompt("Digite o 2º Número :"));
n3 = parseInt(prompt("Digite o 1º Número :"));

document.write("Seus Números Digitados foram: " + n1 + " , " + n2 + " , " + n3 + "<br>");


if ((n1 % 2 && n2 % 2) == 0) {
  if ((n3 % 2) == 0) {
    soma = n1 + n2 + n3;
    document.write("Resultado é: " + soma);
  }
} else if ((n2 % 2 && n3 % 2) == 0) {
  soma = n2 + n3;
  document.write("Resultado é: " + soma);
} else if ((n3 % 2) == 0) {
  soma = n3;
  document.write("Resultado é: " + soma);
} else {
  document.write("ERRO");
}
}
  • Charlie, this is a question or an answer?

  • @Sergio If it’s an answer, with the if ((n1 % 2 && n2 % 2) == 0), i doubt it would be the right answer. That must be the code he tried.

  • @Victorstafusa, too, I think, but I wasn’t 100% sure

  • I’m sorry - me the lack of clarity, I’m new on the site and I still haven’t caught the ruse of how to use it properly, so, I thank everyone who answered I’ll try here... that code I sent there was the one I tried, but I couldn’t with it. Then I sought help here, so that someone who knows, help me. (I am very new to this, I started to learn about it recently)

2 answers

2

You can do that with .reduce thus:

function somador( /*arguments*/ ) {
  var numeros = [].slice.call(arguments);
  return numeros.reduce(function(soma, nr) {
    return nr % 2 == 0 ? soma + nr : soma;
  }, 0);
}

console.log(somador(2,3,4,5,6)); // 12

Using the % == 0 you know if it’s an even number and decide whether to include the number in the sum or not.

With modern Javascript it would be even shorter:

function somador( /*arguments*/ ) {
  return [...arguments].reduce(
    (soma, nr) => nr % 2 == 0 ? soma + nr : soma, 0
  );
}

console.log(somador(2, 3, 4, 5, 6)); // 12

1


You can do it like this:

// Inicialmente o conjunto de números está vazio.
var numeros = [];

// Lê o n.
var n = parseInt(prompt("Quantos números você quer digitar?"));

// Lê cada um dos n números.
for (var i = 0; i < n; i++) {
    var digitado = parseInt(prompt("Digite o " + (i + 1) + "º Número:"));
    numeros.push(digitado);
}

// Escreve os números digitados na tela.
document.write("Seus números digitados foram ");
for (var i = 0; i < n; i++) {
    // Coloca uma vírgula ou um "e" para separar o próximo número do anterior.
    if (i !== 0) {
        if (i === n - 1) {
            document.write(" e ");
        } else {
            document.write(", ");
        }
    }

    // Escreve o número.
    document.write(numeros[i]);
}
document.write("<br>");

// Soma apenas os números pares.
var soma = 0;
for (var i = 0; i < n; i++) {
    if (numeros[i] % 2 === 0) soma += numeros[i];
}

// Mostra o resultado.
document.write("O resultado é: " + soma + ".");

Browser other questions tagged

You are not signed in. Login or sign up in order to post.