Probla numeros multiplos em java

2 respostas
java
X

Boa noite pessoal, estou fazendo uma atividade na minha faculdade a distancia porém não consegui realizar um exercício de uma lista de exercícios:
o que é pedido:

algoritmo que imprima os números de 0 a 100, substituindo os múltiplos de 3 por “MTRES”, os múltiplos de 7 por “MSETE” e os múltiplos de 3 e 7 por “MTRES MSETE”.
consegui chegar na conclusão que pensei estar certo:

for( i=0 ; i<=100 ; i++)
{ 
   if (i%3==0 && i>0)
  { 
   System.out.println("MTRES");
  }
   else if (i%7==0 && i>0)
  {
    System.out.println("MSETE");
  }
  else if (i%3==0 && i%7==0 && i>0)
  {
    System.out.println("MTRES MSETE");
  }
  else
  {
    System.out.println ( i );
  }
}

dentro do if coloquei o i>0 para não substituir o 0 por MTRES ou MSETE,
o problema é que o numero 21 esta escrevendo como “MTRES” quando ele também é “MSETE”, seria para ser "MTRES MSETE"
O que eu poderia fazer?
Obrigado desde já!

2 Respostas

peczenyj

verifica primeiro se é multiplo de 3 e 7, depois de 7 depois de 3 que dá certo

4mega

Acho q é isso:

public class MTres {

public static void main(String[] args) {
    menu();
}

public static void menu() {
    for (int i = 0; i <= 100; i++) {
        if (i % 3 == 0 || i % 7 == 0) {
            if (i % 7 == 0 && i % 3 >= 1) {
                System.out.println("MSETE");
            } else if (i % 3 == 0 && i % 7 >= 1) {
                System.out.println("MTRES");
            } else {
                System.out.println("MTRES MSETE");
            }
        } else {
            System.out.println(i);
        }
    }
}
}
Criado 14 de outubro de 2016
Ultima resposta 14 de out. de 2016
Respostas 2
Participantes 3