Lógica, perguntado por elbiasimone, 3 meses atrás

Desafio Java

Dado um inteiro x, retorne o número de etapas para reduzi-lo a zero. Em uma etapa, se o número atual for par, você deve dividi-lo por 2, caso contrário, você deve subtrair 1 dele.


Entrada

A entrada consiste em um número inteiro x. Você deverá implementar a solução de acordo com a descrição do desafio.


Saída

O resultado impresso, será o valor exato das etapas possíveis para reduzir o valor de x a zero, como nos exemplos a baixo:


Exemplo 1:

Entrada 14
Saída 6

Explicação:


Etapa 1) 14 é par; divida por 2 e obtenha 7.


Etapa 2) 7 é ímpar; subtraia 1 e obtenha 6.


Etapa 3) 6 é par; divida por 2 e obtenha 3.


Etapa 4) 3 é ímpar; subtraia 1 e obtenha 2.


Etapa 5) 2 é par; divida por 2 e obtenha 1.


Etapa 6) 1 é ímpar; subtraia 1 e obtenha 0.

Exemplo 2:


Entrada 8
Saída 4

Explicação:


Etapa 1) 8 é par; divida por 2 e obtenha 4.


Etapa 2) 4 é par; divida por 2 e obtenha 2.


Etapa 3) 2 é par; divida por 2 e obtenha 1.


Etapa 4) 1 é ímpar; subtraia 1 e obtenha 0.


elbiasimone: Faltou a Entrada 8 e a Saída 4
denisecosta698: import java.util.*;

public class Main {

public static void main(String[] args) {

//variável de entrada
Scanner entrada = new Scanner(System.in);
int x = entrada.nextInt();
int etapas = 0;

//Laço para calcular o número de etapas, de acordo com as regras

while (x != 0) {

if (x%2 ==0) { //par

x = x/2;

++etapas;

} else { //ímpar

x = x - 1;

++etapas;

}

}

System.out.println(etapas);

}

}

Soluções para a tarefa

Respondido por vbonat
2

Vamos escrever um código em linguagem de programação Java para resolver o que se pede. O algoritmo completo se encontra na imagem em anexo.

Código em linguagem de programação Java

Vamos escrever o nosso programa em Java para reduzir um número inteiro x a zero, de acordo com as regras descritas. Para isso, vamos utilizar o laço while, conforme descrito a seguir:

public class Main {

 public static void main(String[] args) {

   //variável de entrada

   int xi = 14;

   int etapas = 0;

   int x = xi;

   //Laço para calcular o número de etapas, de acordo com as regras

   while (x != 0) {

    if (x%2 ==0) { //par

        x = x/2;

           ++etapas;

       } else { //ímpar

        x = x - 1;

        ++etapas;

       }

   } //Imprime o número de entrada e o número de etapas

   System.out.println("O número de entrada é " + xi);

   System.out.println("O número de etapas é " + etapas);

 }

}

Saiba mais sobre programação Java em: https://brainly.com.br/tarefa/53971366

#SPJ1

Anexos:

denisecosta698: Obrigada. Fiz o meu dessa forama:
Perguntas interessantes