Contar quantos números pares há entre 1 e 50

Boas!

Será que alguém me pode ajudar?!?
Necessito que o meu código imprima quantos números pares existem entre 1 e 50, mas dá sempre erros…

package domain;

public class Pares {
  
  public static void main(String[] args) {
    n = 1;
    P = 0;
    
    while (n <= 50) {
      int a;
      n = n + 1;
      
      if (a % 2 == 0) {
        a = P;
        P = P + 1;
      }
    }
    
    print("A quantidade de números pares é: ", P);
  }
}

A lógica mais fácil é essa:

int pares = 50 / 2;
System.out.print("A quantidade de números pares é: " + pares);

Mas se realmente precisa fazer um laço, é só fazer assim:

int pares =  0;
int de    =  1;
int ate   = 50;
for (int numero = de; numero <= ate; numero++) {
    if (numero % 2 == 0) {
        pares++;
    }
}
System.out.print("A quantidade de números pares é: " + pares);
1 curtida

Muito Obrigada!! Funcionou perfeitamente <3

Se for um exercício - que geralmente possuem restrições artificiais como “não pode” ou “deve” usar X - então pode ser que “exijam” que se use o operador % dentro do for.

Mas na verdade você pode fazer o seguinte: ajustar o valor inicial para garantir que ele seja um número par, e depois fazer o for de 2 em 2:

int pares = 0;
int inicio = 1, fim = 50;
// se início é ímpar, ajusta para o próximo número par
if (inicio % 2 != 0) {
    inicio++;
}
// aqui eu tenho certeza que inicio é par, então posso fazer o loop de 2 em 2
for (int i = inicio; i <= fim; i += 2) {
    pares++;
}
System.out.println("A quantidade de números pares é: " + pares);

Ou seja, eu só faço o if usando o % uma única vez antes do for. Depois, como agora eu tenho certeza que inicio é par, eu posso fazer o for de 2 em 2 (assim eu não preciso testar vários números durante o for, e no final eu faço metade das iterações).


Se bem que não precisa de um loop, basta um cálculo simples:

int inicio = 1, fim = 50;
// se início é ímpar, ajusta para o próximo número par
if (inicio % 2 != 0) {
    inicio++;
}
// se fim é ímpar, ajusta para o número par anterior
if (fim % 2 != 0) {
    fim--;
}
int pares = ((fim - inicio) / 2) + 1;
System.out.println("A quantidade de números pares é: " + pares);

Ou seja, primeiro eu ajusto os valores inicial e final para serem números pares (o início eu ajusto para o próximo, e o final eu ajusto para o anterior). Depois basta fazer uma conta simples para saber a quantidade.

2 curtidas