Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
SPQR solution in Clear category for Roman Numerals by perimeter
def checkio(number):
rnumerals = {
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',
}
r = ''
#as of 3.7 insertion order into a dict is preserved,
#see https://stackoverflow.com/questions/5629023/the-order-of-keys-in-dictionaries
for key in rnumerals.keys():
while number >= key:
r += rnumerals[key]
number -= key
return r
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!')
Dec. 21, 2021
Comments: