forked from course-work/week1
Update 03-roman-numerals/roman.py
This commit is contained in:
parent
2fc3e17d0c
commit
5100753526
@ -1,20 +1,25 @@
|
|||||||
def roman( amount ):
|
class int( int ):
|
||||||
|
|
||||||
|
def roman( self ):
|
||||||
romanNum = []
|
romanNum = []
|
||||||
symbols = (
|
symbols = ( ( 'M', 1000 ), ( 'C', 100 ), ( 'XC', 90 ), ( 'L', 50 ), ( 'X', 10 ),
|
||||||
( 'M', 1000 ),
|
( 'IX', 9 ), ('V', 5 ) , ( 'IV', 4 ), ( 'I', 1 ) )
|
||||||
( 'C', 100 ),
|
|
||||||
( 'XC', 90 ),
|
|
||||||
( 'L', 50 ),
|
|
||||||
( 'X', 10 ),
|
|
||||||
( 'IX', 9 ),
|
|
||||||
('V', 5 ) ,
|
|
||||||
( 'IV', 4 ),
|
|
||||||
( 'I', 1 )
|
|
||||||
)
|
|
||||||
|
|
||||||
for symbol, value in symbols:
|
for symbol, value in symbols:
|
||||||
while amount >= value:
|
while self >= value:
|
||||||
amount -= value
|
self -= value
|
||||||
romanNum.append( symbol )
|
romanNum.append( symbol )
|
||||||
|
|
||||||
return ''.join( romanNum )
|
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"
|
Loading…
x
Reference in New Issue
Block a user