Informática, perguntado por maiaOrendo, 1 ano atrás

Faça um programa Java que solicite ao usuário a entrada de um número inteiro qualquer. Em seguida o programa informará a unidade, a dezena e a centenadesse número.Inclua comentários no programa.Exemplo: caso o usuário informe 2763, o programa deverá responder com:Unidade: 3.Dezena: 6.Centena: 7.Exemplo 2: caso o usuário informe 25, o programa deverá responder com:Unidade: 5.Dezena: 2.Centena: 0.(Dica: utilize o operador de resto da divisão inteira)

Soluções para a tarefa

Respondido por cledersonbc
2
Irei utilizar o objeto Scanner para leitura de dados via teclado. Agora vamos a lógica:

Problema
Imagine que o usuário informou o número xyz. Precisamos pegar a unidade e armazenar em uma variável. Como fazemos isso? Simples, xyz % 10 = z, ou seja, o resto da divisão de qualquer número por 10, se não for uma divisão exata, me retorna a unidade.

35 % 10 = 5
109 % 10 = 9
...

Resolução
Pegar a unidade foi fácil, mas e pegar a dezena y que está no meio do número? Simples, divide o número xyz por 10, sobra xy e xy % 10 = y. Dividimos xy por 10 e sobra x, x % 10 = x e é importante que essa última operação seja feita, porque nesse caso como são apenas 3 dígitos parece desnecessário, mas e se houvessem 4 dígitos? 10 dígitos? Agora que já sabe a lógica, vamos ao código.

Obs.: divisão de inteiros resulta em inteiros.

Código
import java.util.Scanner; //Importando classe para instanciar o objeto de leitura

public class Udc {
  public static void main(String[] args) {
     Scanner leia = new Scanner(System.in); //Objeto para leitura
     int x, u, d, c; //Valor, unidade, dezena e centena

     //Leitura
     System.out.print("Informe um número qualquer: ");
     x = leia.nextInt();

     //Pegando a unidade
     u = x % 10;
     //Eliminando a unidade
     x = x / 10;
     //Pegando a dezena
     d = x % 10;
     //Eliminando a dezena
     x = x / 10;
     // Pegando a centena
     c = x % 10;

     //Exibindo resultado na tela
     System.out.printf("\nUnidade = %d\nDezena = %d\nCentena = %d\n", u, d, c);
  }
}

Não sei se já usou o print formatado, basicamente ele substitui o que está no marcador %d por um número inteiro especificado após as aspas. O uso da vírgula é para separar os parâmetros.
Perguntas interessantes