Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Lookup table solution in Clear category for Roman Numerals by pseidel
TABLE = {
1000: "M",
900: "CM",
500: "D",
400: "CD",
100: "C",
90: "XC",
50: "L",
40: "XL",
10: "X",
9: "IX",
5: "V",
4: "IV",
1: "I",
}
def arabic_to_roman(arabic_num):
roman_num = []
remainder = arabic_num
def add_roman_symbols(roman_num, remainder, value, symbol):
while remainder >= value:
roman_num.append(symbol)
remainder -= value
return remainder
for value, symbol in TABLE.items():
remainder = add_roman_symbols(roman_num, remainder, value, symbol)
roman_num = "".join(roman_num)
return roman_num
checkio = arabic_to_roman
if __name__ == "__main__":
# These "asserts" using only for self-checking and not necessary for auto-testing
assert checkio(6) == "VI", "6"
assert checkio(76) == "LXXVI", "76"
assert checkio(499) == "CDXCIX", "499"
assert checkio(3888) == "MMMDCCCLXXXVIII", "3888"
print("Done! Go Check!")
Jan. 28, 2020