Update 03-roman-numerals/roman.py

This commit is contained in:
William Mantly 2023-09-26 00:43:13 +00:00
parent 2fc3e17d0c
commit 5100753526

View File

@ -1,20 +1,25 @@
def roman( amount ):
class int( int ):
def roman( self ):
romanNum = []
symbols = (
( 'M', 1000 ),
( 'C', 100 ),
( 'XC', 90 ),
( 'L', 50 ),
( 'X', 10 ),
( 'IX', 9 ),
('V', 5 ) ,
( 'IV', 4 ),
( 'I', 1 )
)
symbols = ( ( 'M', 1000 ), ( 'C', 100 ), ( 'XC', 90 ), ( 'L', 50 ), ( 'X', 10 ),
( 'IX', 9 ), ('V', 5 ) , ( 'IV', 4 ), ( 'I', 1 ) )
for symbol, value in symbols:
while amount >= value:
amount -= value
while self >= value:
self -= value
romanNum.append( symbol )
return ''.join( romanNum )
n = int( 56 )
print( n, n.roman() )
# alias int.roman() not to change assert lines
roman = int.roman
assert roman( 11 ) == "XI", "11 should return XI"
assert roman( 60 ) == "LX", "60 should return LX"
assert roman( 78 ) == "LXXVIII", "78 should return LXXVIII"
assert roman( 4 ) == "IV", "4 should return IV"
assert roman( 99 ) == "XCIX", "99 should return XCIX"