Os números não estão saindo na sequência certa, o que fazer?

um programa em Java que leia um número N, some todos os números múltiplos de 3 entre 1 e
N, e mostre o resultado obtido.

os multiplos deve aparecer de 0 a ate o numero digitado pelo usuário, porém a sequência está errada.

public static void main(String[] args) {
        Scanner ler = new Scanner(System.in);
        int n, x = 0;
    System.out.println("digite um número: ");
    n = ler.nextInt();

  for (int i = 1; i <= n; i++) {
      x++;
      x*=3;
        System.out.println(x);
    }
    }Texto pré-formatado

Você não está verificando se o número é múltiplo de 3.

como verifico?

if (i % 3 == 0) {
    // é múltiplo de 3
}

Aqui está o problema. A cada iteração vc soma 1 e multiplica por 3.

x começa em zero. Então vc soma 1 e multiplica por 3, o resultado é 3.

Depois soma 1 de novo (vira 4) e multiplica por 3, resultando em 12.

Aí soma 1, vira 13, multiplica por 3, vira 39. E assim vai…

Se quer os múltiplos de 3, de zero até n, basta começar no zero e incrementar de 3 em 3:

for (int i = 0; i <= n; i += 3) {
    System.out.println(i);
}
2 curtidas

deu certo!!! obrigada pela ajuda