mirror of
https://github.com/theoludwig/programming-challenges.git
synced 2024-10-29 22:17:23 +01:00
.. | ||
solutions | ||
test | ||
README.md |
roman-numerals
Created by @theoludwig on 30 June 2021.
Instructions
The objective of this challenge is to create a function that translates a number into Roman numerals or the other way around.
We will use the letters I
, V
, X
, L
, C
, D
, M
to build the Roman numerals.
Here are the rules for building a Roman numeral:
- The numbers
1
,2
and3
are written respectively asI
,II
andIII
- The number
5
is written asV
- The number
10
is written asX
- The number
50
is written asL
- The number
100
is written asC
- The number
500
is written asD
- The number
1000
is written asM
- When writing two letters in a row, if the numerical value of the first is greater than the numerical value of the second, their numerical values are added. For example the number
6
is writtenVI
. We addV
(5) +I
(1) = 6. - When writing two letters in a row, if the numerical value of the first is less than the numerical value of the second, the value of the first is subtracted from the second. For example the number
4
is writtenIV
. We subtractV
(5) -I
(1) = 4. - Subtractions of values are limited to 2 letters only. For example we cannot write
8
while doingIIX
. We must use the addition of letters like thisVIII
. - Therefore, the first ten numbers are written as
I
,II
,III
,IV
,V
,VI
,VII
,VIII
,IX
,X
. Larger numbers follow the same pattern. - You can associate as many symbols as you want to write larger numbers, for example:
36
is written asXXXVI
42
is written asXLII
2448
is written asMMCDXLVIII
.
Symbol | I | V | X | L | C | D | M |
---|---|---|---|---|---|---|---|
Value | 1 | 5 | 10 | 50 | 100 | 500 | 1000 |
Input
- Line 1: The string :
arabic to roman
orroman to arabic
to determine how to convert the number - Line 2: The number to convert
Source
Examples
See the test
folder for examples of input/output.