Trilhas
/
Free Pascal
Free Pascal
/
Exercícios
/
Números romanos
Números romanos

Números romanos

Médio

Introdução

Hoje, a maioria das pessoas no mundo usa algarismos arábicos (0–9). Mas se você voltasse dois mil anos no tempo, descobriria que a maioria dos europeus usava algarismos romanos.

Para escrever um algarismo 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 algarismo romano é uma sequência dessas letras, e o valor dele é a soma dos valores das letras. Por exemplo, XVIII tem o valor 18 (10 + 5 + 1 + 1 + 1 = 18).

Mas há uma regra que complica um pouco as coisas: a mesma letra não pode ser usada mais de três vezes seguidas. Isso significa que não conseguimos expressar números como 4 com o aparentemente natural IIII. Em vez disso, para esses números, usamos um método de subtração entre duas letras. Então pensamos no 4 não como 1 + 1 + 1 + 1, mas como 5 - 1. E, um pouco confuso para o nosso pensamento moderno, escrevemos o número menor primeiro. Isso se aplica apenas nos seguintes casos: 4 (IV), 9 (IX), 40 (XL), 90 (XC), 400 (CD) e 900 (CM).

A ordem importa nos algarismos romanos! As letras (e os compostos especiais acima) devem ser ordenadas por valor decrescente, da esquerda para a direita.

Veja 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

Sua tarefa é converter um número de algarismos arábicos para algarismos romanos.

Para este exercício, vamos considerar apenas os algarismos romanos tradicionais, em que o maior número é MMMCMXCIX (ou 3.999).

Note

Há muitas maneiras diferentes de converter entre algarismos arábicos e romanos. Recomendamos adotar uma abordagem ingênua primeiro para se familiarizar com o conceito de algarismos romanos e depois buscar métodos mais eficientes.

Não deixe de conferir nosso vídeo Deep Dive no final para explorar as diferentes abordagens que você pode adotar!

Editar via GitHub O link abre em uma nova janela ou aba
Free Pascal Exercism

Tudo pronto para começar Números romanos?

Crie sua conta no Exercism para aprender e dominar Free Pascal com 100 exercícios e mentoria humana de verdade, tudo de graça.

Mergulho profundo em Números romanos!

Explore várias soluções diferentes para este exercício complicado, que vão da recursão a consultas em tabelas, passando por uma solução que usa números de base mista e uma trapaça simplista em Common Lisp.