Percursos
/
8th
8th
/
Exercícios
/
Números romanos
Números romanos

Números romanos

Médio

Introdução

Hoje em dia, a maioria das pessoas no mundo usa algarismos árabes (0–9). Mas se recuasses dois mil anos, verias que a maioria dos europeus usava algarismos romanos.

Para escrever um número romano, usamos as seguintes letras latinas, cada uma com um valor:

M D C L X V I
1000 500 100 50 10 5 1

Um número romano é uma sequência destas letras, e o seu valor é a soma dos valores das letras. Por exemplo, XVIII tem o valor 18 (10 + 5 + 1 + 1 + 1 = 18).

Há, no entanto, uma regra que torna tudo mais complicado: a mesma letra não pode ser usada mais de três vezes seguidas. Isso significa que não podemos representar números como o 4 com o aparentemente natural IIII. Em vez disso, para esses números, usamos um método de subtração entre duas letras. Por isso, pensamos no 4 não como 1 + 1 + 1 + 1, mas sim como 5 - 1. E, de forma um pouco confusa para o nosso pensamento moderno, escrevemos primeiro o número menor. Isto aplica-se apenas nos seguintes casos: 4 (IV), 9 (IX), 40 (XL), 90 (XC), 400 (CD) e 900 (CM).

A ordem é importante nos números romanos! As letras (e os compostos especiais acima) têm de estar ordenadas por valor decrescente, da esquerda para a direita.

Aqui estão alguns exemplos:

 105 => CV
---- => --
 100 => C
+  5 =>  V
 106 => CVI
---- => --
 100 => C
+  5 =>  V
+  1 =>   I
 104 => CIV
---- => ---
 100 => C
+  4 =>  IV

E um último exemplo mais complexo:

 1996 => MCMXCVI
----- => -------
 1000 => M
+ 900 =>  CM
+  90 =>    XC
+   5 =>      V
+   1 =>       I

Instruções

A tua tarefa é converter um número de algarismos árabes para algarismos romanos.

Neste exercício, só nos interessam os algarismos romanos tradicionais, em que o número mais alto é MMMCMXCIX (ou 3 999).

Note

Há muitas formas diferentes de converter entre algarismos árabes e algarismos romanos. Recomendamos que comeces por uma abordagem simples, para te familiarizares com o conceito de algarismos romanos, e que só depois procures métodos mais eficientes.

Certifica-te de que vês o nosso vídeo Deep Dive no final, para explorares as diferentes abordagens que podes seguir!

Editar via GitHub A ligação abre numa nova janela ou separador
8th Exercism

Estás pronto para começar Números romanos?

Inscreve-te no Exercism para aprenderes e dominares 8th com 70 exercícios, e mentoria humana real, tudo grátis.

Mergulha a fundo em Números romanos!

Explora várias soluções diferentes para este exercício complicado, desde a recursão a consultas baseadas em tabelas, passando por uma solução que recorre a números de base mista e por alguns truques simplistas em Common Lisp.