mirror of
https://github.com/theoludwig/programming-challenges.git
synced 2025-09-11 23:11:21 +02:00
roman-numerals
Created by @Divlo 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,2and3are written respectively asI,IIandIII - The number
5is written asV - The number
10is written asX - The number
50is written asL - The number
100is written asC - The number
500is written asD - The number
1000is 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
6is 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
4is writtenIV. We subtractV(5) -I(1) = 4. - Subtractions of values are limited to 2 letters only. For example we cannot write
8while 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:
36is written asXXXVI42is written asXLII2448is 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 romanorroman to arabicto determine how to convert the number - Line 2: The number to convert
Source
Examples
See the test folder for examples of input/output.