Skip to content

Commit 82d1476

Browse files
roman-numerals: sync (exercism#172)
* Sync the `roman-numerals` exercise's docs with the latest data. * Sync the `roman-numerals` exercise's metadata with the latest data.
1 parent 7330e6d commit 82d1476

File tree

3 files changed

+68
-38
lines changed

3 files changed

+68
-38
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,12 @@
1-
# Instructions
1+
# Introduction
22

3-
Write a function to convert from normal numbers to Roman Numerals.
3+
Your task is to convert a number from Arabic numerals to Roman numerals.
44

5-
The Romans were a clever bunch.
6-
They conquered most of Europe and ruled it for hundreds of years.
7-
They invented concrete and straight roads and even bikinis.
8-
One thing they never discovered though was the number zero.
9-
This made writing and dating extensive histories of their exploits slightly more challenging, but the system of numbers they came up with is still in use today.
10-
For example the BBC uses Roman numerals to date their programs.
5+
For this exercise, we are only concerned about traditional Roman numerals, in which the largest number is MMMCMXCIX (or 3,999).
116

12-
The Romans wrote numbers using letters - I, V, X, L, C, D, M.
13-
(notice these letters have lots of straight lines and are hence easy to hack into stone tablets).
7+
~~~~exercism/note
8+
There are lots of different ways to convert between Arabic and Roman numerals.
9+
We recommend taking a naive approach first to familiarise yourself with the concept of Roman numerals and then search for more efficient methods.
1410
15-
```text
16-
1 => I
17-
10 => X
18-
7 => VII
19-
```
20-
21-
The maximum number supported by this notation is 3,999.
22-
(The Romans themselves didn't tend to go any higher)
23-
24-
Wikipedia says: Modern Roman numerals ... are written by expressing each digit separately starting with the left most digit and skipping any digit with a value of zero.
25-
26-
To see this in practice, consider the example of 1990.
27-
28-
In Roman numerals 1990 is MCMXC:
29-
30-
1000=M
31-
900=CM
32-
90=XC
33-
34-
2008 is written as MMVIII:
35-
36-
2000=MM
37-
8=VIII
38-
39-
Learn more about [Roman numerals on Wikipedia][roman-numerals].
40-
41-
[roman-numerals]: https://wiki.imperivm-romanvm.com/wiki/Roman_Numerals
11+
Make sure to check out our Deep Dive video at the end to explore the different approaches you can take!
12+
~~~~
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# Description
2+
3+
Today, most people in the world use Arabic numerals (0–9).
4+
But if you travelled back two thousand years, you'd find that most Europeans were using Roman numerals instead.
5+
6+
To write a Roman numeral we use the following Latin letters, each of which has a value:
7+
8+
| M | D | C | L | X | V | I |
9+
| ---- | --- | --- | --- | --- | --- | --- |
10+
| 1000 | 500 | 100 | 50 | 10 | 5 | 1 |
11+
12+
A Roman numeral is a sequence of these letters, and its value is the sum of the letters' values.
13+
For example, `XVIII` has the value 18 (`10 + 5 + 1 + 1 + 1 = 18`).
14+
15+
There's one rule that makes things trickier though, and that's that **the same letter cannot be used more than three times in succession**.
16+
That means that we can't express numbers such as 4 with the seemingly natural `IIII`.
17+
Instead, for those numbers, we use a subtraction method between two letters.
18+
So we think of `4` not as `1 + 1 + 1 + 1` but instead as `5 - 1`.
19+
And slightly confusingly to our modern thinking, we write the smaller number first.
20+
This applies only in the following cases: 4 (`IV`), 9 (`IX`), 40 (`XL`), 90 (`XC`), 400 (`CD`) and 900 (`CM`).
21+
22+
Order matters in Roman numerals!
23+
Letters (and the special compounds above) must be ordered by decreasing value from left to right.
24+
25+
Here are some examples:
26+
27+
```text
28+
105 => CV
29+
---- => --
30+
100 => C
31+
+ 5 => V
32+
```
33+
34+
```text
35+
106 => CVI
36+
---- => --
37+
100 => C
38+
+ 5 => V
39+
+ 1 => I
40+
```
41+
42+
```text
43+
104 => CIV
44+
---- => ---
45+
100 => C
46+
+ 4 => IV
47+
```
48+
49+
And a final more complex example:
50+
51+
```text
52+
1996 => MCMXCVI
53+
----- => -------
54+
1000 => M
55+
+ 900 => CM
56+
+ 90 => XC
57+
+ 5 => V
58+
+ 1 => I
59+
```

exercises/practice/roman-numerals/.meta/config.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
".meta/proof.ci.wren"
1414
]
1515
},
16-
"blurb": "Write a function to convert from normal numbers to Roman Numerals.",
16+
"blurb": "Convert modern Arabic numbers into Roman numerals.",
1717
"source": "The Roman Numeral Kata",
1818
"source_url": "https://codingdojo.org/kata/RomanNumerals/"
1919
}

0 commit comments

Comments
 (0)