6
respostas

Consegui fazer desta maneira... Está correto?

        int numero = 0;
        System.out.println(numero);
        for(int i=0; i<=32; i++) {
            if(numero % 3 == 0) {
                  numero+= + 3;
                 System.out.println(numero);}}
6 respostas

Tentei essa lógica:

    int numero = 0;
    for(int i=0; i<=32; i++) {
        if(numero % 3 == 0) {
            System.out.println(numero);                
        }
        numero++;
    }

Mateus, está quase correto, mas eu gostaria de apontar duas coisas:

1) Ele imprime o 0 quando não deveria, mas isso é um detalhe; 2) O código poderia ser um pouco mais claro. Uma pessoa que olhar esse código vai interpretar: "eu quero pegar todos os números, entre 1 e 32... e somar 3 se forem divisores de 3". Ela chega na lógica correta, mas não fica fica parecendo que 32 faz parte do problema. E se você está somando de 3 em 3, não precisa conferir se os números são divisores de 3, fica redundante, concorda?

Além disso, na linha:

numero+= + 3;

Não precisa colocar o sinal de "+" duas vezes.

Minha sugestão: tente usar só uma variável (i ou numero), você escolhe, que o programa ficará mais claro. Mas a lógica básica está correta!

Thiago, o seu está bem claro, mas com um erro: ele só imprime os números de 0 a 30. Se consertar dois detalhezinhos ele fica perfeito. :)

O desafio é imprimir os múltiplos de 0 que estão entre 0 e 100, por que vocês só estão fazendo um laço até 32?

int numero = 0; for(int i=0; i<100; i++) { if(numero % 3 == 0) { System.out.println(numero); } numero++; }

Assim funciona, e podemos ainda eliminar uma variável que a variável número.

for(int i = 1;  i < 101; i++){
    if(i%3==0){
        System.out.println(i);
    }
}

Temos que colocar "i=1" porque se deixarmos o "i=0" o programa vai imprimir o "0".

Ou podemos fazer assim:

for(int i = 3;  i <= 100; i+=3){
    System.out.println(i);
}