Escreva um programa que solicita ao usuário um número inteiro de 4 algarismos e o programa imprime na tela o seu valor invertido.
Observação: as mensagens exibidas para o usuário deverão ser exatamente como apresentado abaixo (mensagens exibidas com os comandos input() e print()).
Exemplo de execução do programa:
Digite um inteiro de 4 algarismos: 1234
Valor invertido: 4321
Valor invertido: 4321
Passo 1
O enunciado pede que o programa solicite ao usuário um inteiro de 4 algarismos e imprima na tela o seu valor invertido. As mensagens exibidas devem ser exatamente as seguintes:
- Ao pedir a entrada: "Digite um inteiro de 4 algarismos: "
- Ao mostrar o resultado: "Valor invertido: " seguido do número invertido.
Informações importantes que temos do enunciado:
- O usuário vai digitar um inteiro de 4 algarismos (por exemplo,
). - O programa deve mostrar na tela o inteiro com os algarismos em ordem invertida (por exemplo,
para entrada ). - As mensagens devem estar exatamente como no enunciado (maiúsculas, espaços e pontuação).
Passo 2
Escolha do método: existem duas formas simples de inverter os algarismos de um inteiro em Python:
- Usar operações aritméticas (divisão inteira e resto — método matemático).
- Tratar o número como texto (string) e inverter a string.
Vou usar o método aritmético porque ele mostra claramente como extrair cada algarismo — é uma técnica que aparece bastante em provas e trabalhos e não depende de funções de string. Depois eu explico rapidamente a alternativa por string, para você ter mais uma opção rápida.
Passo 3
Conceitos necessários (explicados com calma):
- Resto da divisão (operador “módulo”): para inteiros,
dá o último algarismo de . Em Python isso é feito com . - Exemplo: se
, então .
- Exemplo: se
- Divisão inteira:
(em Python, ) remove o último algarismo de . - Exemplo:
.
Combinar os dois permite pegar cada algarismo, do último para o primeiro.
- Exemplo:
Passo 4
Como extrair os 4 algarismos de um inteiro
(assumindo que
tem exatamente 4 algarismos positivos):
- Defina os algarismos como
, , , , onde é o algarismo das milhares (o primeiro) e é o algarismo das unidades (o último). Para : , , , . - Fórmulas para obter cada algarismo:
-
. -
. -
. -
.
Em Python, usando divisão inteira e módulo, isso fica respectivamente:
-
-
-
-
-
Passo 5
Como montar o número invertido a partir desses algarismos:
- Se os algarismos originais são
(em ordem de maior para menor peso), o número original vale
- O número invertido (com os algarismos na ordem
) vale
Portanto, depois de extrair
, basta calcular
.
Passo 6
Passo a passo numérico com exemplo
:
-
. -
. -
. -
. -
.
Isso produz exatamente o resultado do exemplo do enunciado.
Passo 7
Implementação em Python (explicando cada linha):
- Ler a entrada do usuário e converter para inteiro:
n = int(input("Digite um inteiro de 4 algarismos: "))
- Extrair os algarismos com operações inteiras:
a = n // 1000# milharesb = (n // 100) % 10# centenasc = (n // 10) % 10# dezenasd = n % 10# unidades
- Calcular o invertido:
invertido = d*1000 + c*100 + b*10 + a
- Mostrar o resultado exatamente no formato exigido:
print("Valor invertido: {}".format(invertido))
Observações finais e dicas de prova:
- Em prova, escreva claramente como extraiu cada dígito usando divisão inteira e módulo, e então mostre a expressão para recompor o número invertido.
- Se quiser uma solução alternativa curta (não necessária agora), pode inverter a string: ler como
s = input(...)e usars[::-1]para inverter os caracteres; aí imprimirprint("Valor invertido: " + s[::-1]). Essa solução preserva zeros à esquerda no resultado (por exemplo, entrada1200→ saída0021), enquanto a versão aritmética dá21(sem zeros iniciais). Escolha a que o enunciado pedir; no caso aqui não foi especificado o tratamento de zeros iniciais, então a abordagem aritmética é a mais comum.
Resposta
n = int(input("Digite um inteiro de 4 algarismos: "))
a = n // 1000
b = (n // 100) % 10
c = (n // 10) % 10
d = n % 10
invertido = d1000 + c100 + b*10 + a
print(“Valor invertido: {}”.format(invertido))
a = n // 1000
b = (n // 100) % 10
c = (n // 10) % 10
d = n % 10
invertido = d1000 + c100 + b*10 + a
print(“Valor invertido: {}”.format(invertido))