TOPIC

Wrong answer(15%)

Dayane asked 4 months ago

Boa noite! Gostaria de saber como resolver essa parte do exercicio {

--A última linha de entrada vai conter um número nulo ou negativo.

public static void main(String[] args) {

    Scanner ler = new Scanner(System.in);

    int M=100, N=100, soma=0;

    while ((M > 0) && (N > 0)) {
        M = ler.nextInt();
        N = ler.nextInt();
        soma=0;
        if (M < N) {
            for (int i=M; i<=N; i++) {
                System.out.print(i + " ");
                soma+=i;
            }
            System.out.println("Sum=" + soma);
        }
        else if(M > N)  {
            for (int i=N; i<=M; i++) {
                System.out.print(i + " ");
                soma+=i;
            }
            System.out.println("Sum=" + soma);
        }else if(M==0 && N==0) {
            System.out.println(" ");                
        }
    }

}

}

Remember not post solutions. Your post may be reviewed by our moderators.

  • Marcos Couto replied 4 months ago

    Para você sair do loop, você está usando esta lógica: Se M e N forem iguais a 0, imprimir um espaço.

    else if(M==0 && N==0) {
                System.out.println(" ");                
            }

    O exercício pede para que se algum dos valores que M ou N for menor ou igual a zero ele sair do programa, você poderia fazer da seguinte forma:

    else if(M <= 0 || N <= 0) {
                break;               
            }

    Ou seja, se a variável M (OU) a variável N forem menores ou iguais a zero o programa sai do loop do while através do break.

  • feodorv replied 4 months ago

            if (M < N) {
              ... }
            else if(M > N)  {
              ...}

    What if N == M (and not zero)? You can simply swap the values if M > N:

    M = ler.nextInt();
    N = ler.nextInt();
    if( M == 0 || N  == 0 ) break;
    if( M > N ) swap( M, N);
    for( int i = M; i <= N; ++i) ...