Given an integer ‘N’, the task is to find its corresponding Roman numeral.
Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M.
Symbol Value
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
Example :
2 is written as II in the roman numeral, just two one’s added together.
12 is written as XII, which is simply X(ten) + II(one+one).
The number 27 is written as XXVII, which is XX + V + II.
Roman numerals are usually written largest to smallest from left to right.
However, the numeral for four is not IIII. Instead, the number four is written as IV. Because the one is before the five we subtract it making four.
The same principle applies to the number nine, which is written as IX.
There are six instances where subtraction is used:
I can be placed before V (5) and X (10) to make 4 and 9.
X can be placed before L (50) and C (100) to make 40 and 90.
C can be placed before D (500) and M (1000) to make 400 and 900.
The first line of input contains an integer ‘T’ denoting the number of test cases.
Then the test cases follow.
The only line of each test case contains an integer ‘N’.
Output Format :
For each test case, the only line of output prints the corresponding roman numeral for the given integer ‘N’.
Note:
You do not need to print anything, it has already been taken care of. Just implement the given function.
1 <= T <= 10^2
1 <= N <= 4*10^3 - 1
Time Limit : 1 sec
2
3
12
III
XII
For the first test case, 3 is written as III in Roman numeral, just three one’s added together.
For the second test case, the number 12 can be represented as XII, which is simply X + II.
2
40
27
XL
XXVII
For the first test case, 40 is written as XL in Roman numeral, which is L - X.
For the second test case, the number 27 can be represented as XXVII, which is simply X + X + V + II.
Convert the units, tens, hundreds, and thousands place of the given number separately.
The idea is to convert each digit present at units, tens, hundreds and thousands places of the given number into roman numerals separately. Also, the conversion of some digits are a little bit different from other digits because these digits follow subtractive notation, i.e. 4 can be represented as “IV”, 9 can be represented as “IX” and so on.
Here is the algorithm :
For example, the roman numeral for the number 1749 will be “MDCCXLIX”.
Explanation :
Step 1 :
Step 2 :
Step 3 :
Step 4 :
Step 5 :
Step 6:
O(log(N)), where ‘N’ is the given number.
Since, we are looping through the given number ‘N’, having log(N) number of digits. Thus, the time complexity will be O(log(N)).
O(1)
Since no extra memory is used except some variables, thus, the space complexity will be O(1).