A necessidade de aplicar a operação de cálculo do resto da divisão é visível quando se trabalha com os dígitos de um número.
Vamos analisar a seguinte tarefa:
É fornecido um número de três dígitos. Exiba todos os dígitos desse número e obtenha um novo número formado pela permuta de unidades e centenas
A questão mais difícil que surge para iniciantes é como pegar e obter os dígitos de um número.
Na verdade, tudo é resolvido de forma bastante simples, se você se lembrar da matemática. E a matemática nos diz que qualquer número pode ser decomposto em uma soma de termos de dígitos.
Por exemplo:
365=3*100+6*10+5*1
. Vemos que cada dígito é um multiplicador do dígito correspondente do número.
Mostraremos como obter cada dígito de um número em uma variável separada, usando o exemplo da divisão das colunas pelo número 10. (Pegamos o número 10, porque temos um sistema de numeração decimal e, portanto, temos termos de dígitos 1, 10, 100, etc.)
Analisando a figura, você pode ver que
e = n % 10; // operação n % 10 - calcula o último dígito do número n (ou seja, as unidades do número) 365 % 10 = 5
d = n/10% 10; // operação n / 10 - reduz o número em 10 vezes, ou seja, descarta o último dígito do número (365 / 10 = 36),
// agora podemos calcular o número de dezenas aplicando a operação familiar ao resultado - calcule o resto da divisão pelo número 10, 36 % 10 = 6
s = n/100; // para obter centenas, basta descartar dois dígitos à direita do número, ou seja, dividir por 10 duas vezes (n / 10 /10 ou o mesmo que n / 100 ) 365 / 100 = 3
Tendo os dígitos do número salvos, podemos fazer qualquer número deles multiplicando o dígito desejado pelo dígito correspondente:
por exemplo, a linha abaixo obterá um novo número a partir do número original n, com centenas e unidades reorganizadas:
1) o antigo número de uns (armazenado na variável e) multiplicado por 100
2) o antigo número de dezenas (armazenado na variável d) multiplique por 10
3) podemos simplesmente multiplicar o antigo número de centenas por 1, ou simplesmente pegar o valor armazenado na variável s
Depois é só somar os valores dos pontos 1, 2 e 3 e obter um novo número:
n1 = e * 100 + d * 10 + s;
Todo o programa ficará assim:
importar java.util.Scanner;
public class Principal {
public static void main(String[] args) {
Scanner em = new Scanner(System.in);
int n, e, d, s;
n = in.nextInt();
e = n % 10;
d = n/10% 10;
s = n/100;
System.out.print(e + "" + d + "" + s + "" + (e * 100 + d * 10 + s));
}