Escreva um programa para converter números inteiros, menores do que 4000 e escritos em algarismos arábicos, para romanos. Observação: evite escrever mais do que nove ifs. Dicas:
  • A ideia é usar um comando while para analisar cada casa decimal e gerar os caracteres romanos diferentemente para cada iteração.
  • Use uma string ou um dicionário para armazenar as letras correspondentes a cada casa decimal.
    Exemplo: 1666 corresponde a string MDCLXVI, onde:
    as letras nas posições 5 e 6 correspondem às unidades (VI),
    as letras nas posições 3 e 4 correspondem às dezenas (LX),
    as letras nas posições 1 e 2 correspondem às centenas (DC),
    a letra na posição 0 corresponde aos milhares (M).

Passo 1

Ok, vamos lá! O exercício pede para criar um programa que converta números inteiros menores que 4000, escritos com algarismos arábicos, para números romanos. A gente vai trabalhar com programação, especificamente com comandos como while e estruturas de dados como strings ou dicionários. Vamos precisar entender como os números romanos funcionam e como a gente pode quebrar o número em suas partes (unidades, dezenas, centenas e milhares) para converter cada parte corretamente.

Passo 2

Primeiro, vamos pensar em como dividir o número que queremos converter. Por exemplo, se tivermos o número 1666, ele pode ser dividido em milhares (1), centenas (6), dezenas (6) e unidades (6). Isso ajuda a converter cada parte separadamente para seu equivalente em números romanos. Para fazer isso, a gente pode usar um loop while que vai analisar cada casa decimal do número.

Passo 3

Agora, precisamos de uma maneira de saber quais letras romanas correspondem a cada parte do número. Para isso, vamos usar um dicionário que mapeia valores arábicos para romanos. Por exemplo:
romanos = {
    'unidades': ['', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX'],
    'dezenas': ['', 'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC'],
    'centenas': ['', 'C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM'],
    'milhares': ['', 'M', 'MM', 'MMM']
}
Esse dicionário vai nos ajudar a pegar a parte correspondente do número e substituir pelo símbolo romano certo.

Passo 4

Agora, vamos implementar o loop while para processar cada casa decimal. A ideia é começar pela unidade, depois a dezena, a centena e finalmente os milhares. Em cada iteração do loop, a gente pega o último dígito do número, usa o dicionário para encontrar o símbolo romano correspondente e adiciona esse símbolo no início da nossa string final.

Passo 5

Vamos juntar tudo e criar o programa completo. Primeiro, vamos inicializar algumas variáveis: a string que vai guardar o resultado final em romanos e uma variável temporária para o número que vamos converter. Depois, usamos o loop while para processar cada casa decimal, atualizando a string final a cada passo. Finalmente, exibimos o resultado.

Resposta

Aqui está o programa completo em Python que faz a conversão de números inteiros menores que 4000 para números romanos:
def inteiro_para_romano(numero):
    romanos = {
        'unidades': ['', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX'],
        'dezenas': ['', 'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC'],
        'centenas': ['', 'C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM'],
        'milhares': ['', 'M', 'MM', 'MMM']
    }
    
    resultado = ''
    posicao = 0
    
    while numero > 0:
        digito = numero % 10
        if posicao == 0:
            resultado = romanos['unidades'][digito] + resultado
        elif posicao == 1:
            resultado = romanos['dezenas'][digito] + resultado
        elif posicao == 2:
            resultado = romanos['centenas'][digito] + resultado
        elif posicao == 3:
            resultado = romanos['milhares'][digito] + resultado
        numero = numero // 10
        posicao += 1
    
    return resultado

# Exemplo de uso:
print(inteiro_para_romano(1666))  # Saída: MDCLXVI
Esse programa vai converter qualquer número inteiro menor que 4000 para o seu equivalente em números romanos, seguindo os passos que a gente explicou!

Exercícios relacionados