Computer Science

Write a program to convert a given number into equivalent Roman number (store its value as a string). You can use following guidelines to develop solution for it:

  • From the given number, pick successive digits, using %10 and /10 to gather the digits from right to left.
  • The rules for Roman Numerals involve using four pairs of symbols for ones and five, tens and fifties, hundreds and five hundreds. An additional symbol for thousands covers all the relevant bases.
  • When a number is followed by the same or smaller number, it means addition. "II" is two 1's = 2. "VI" is 5 + 1 = 6.
  • When one number is followed by a larger number, it means subtraction. "IX" is 1 before 10 = 9. "IIX isn't allowed, this would be "VIII". For numbers from 1 to 9, the symbols are "I" and "V", and the coding works like this. "I" , "II", "III", "IV", "V", "VI", "VII", "VIII", "IX".
  • The same rules work for numbers from 10 to 90, using "X" and "L". For numbers from 100 to 900, using the symbols "C" and "D". For numbers between 1000 and 4000, using "M".

Here are some examples. 1994 = MCMXCIV, 1956 = MCMLVI, 3888= MMMDCCCLXXXVIII

Python

Python String Manipulation

14 Likes

Answer

n = int(input("Enter the number: "))
num = (1000, 900,  500, 400, 100,  90, 50,  40, 10,  9,   5,  4,   1)
rom = ('M',  'CM', 'D', 'CD','C', 'XC','L','XL','X','IX','V','IV','I')

result = ''

for i in range(len(num)) :
    count = int(n / num[i])
    result += str(rom[i] * count)
    n -= num[i] * count

print(result)

Output

Enter the number: 1994
MCMXCIV

=====================================

Enter the number: 1956
MCMLVI

=====================================

Enter the number: 3888
MMMDCCCLXXXVIII

Answered By

8 Likes


Related Questions