Roman numbers. Write a program that converts a positive integer into the Roman number system. The Roman number system has digits

I=1
V=5
X=10
L=50
C=100
D=500
M=1,000

Numbers are formed according to the following rules. (1) Only numbers up to 3,999 are represented. (2) As in the decimal system, the thousands, hundred, tens, and ones are expressed separately. (3) The numbers 1 to 9 are expressed as

I=1
II=2
III=3
IV=4
V=5
VI=6
VII=7
VIII=8
IX=9

As you can see, a I preceding a V or X is subtracted from the value, and you can never have more than three I's in a row. (4) Tens and hundreds are done the same way, except that the letters X, L, C and C, D, M are used instead of I, V, X, respectively.

Your program should take an input, such as 1978, and convert it to Roman numerals, MCMLXXVIII.

Respuesta :

Answer:

The program in Python is as follows:

def Conversion(num):

   digitint = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4,1]

   digitroman = ["M", "CM", "D", "CD","C", "XC", "L", "XL","X", "IX", "V", "IV","I"]

   roman_num = ''

   i = 0

   while  num > 0:

       for _ in range(num // digitint[i]):

           roman_num += digitroman[i]

           num -= digitint[i]

       i+=1

   return roman_num

num = int(input("Enter number: "))

if num > 3999 or num < 0:

   print("Out of range")

else:

   print(Conversion(num))

Explanation:

See attachment for full program where I use comments to explain each line

Ver imagen MrRoyal