diff --git a/03-roman-numerals/roman.py b/03-roman-numerals/roman.py index 6d1eb25..97341f2 100644 --- a/03-roman-numerals/roman.py +++ b/03-roman-numerals/roman.py @@ -1,18 +1,27 @@ -# Use this function to get and return all the prime numbers below the input number +class my_int( int ): -def to_roman(num): - pass + def roman( self ): + romanNum = [] + 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 self >= value: + self -= value + romanNum.append( symbol ) + return ''.join( romanNum ) +n = my_int( 56 ) +print( n, n.roman() ) +# alias my_int.roman() not to change assert lines +roman = my_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" - -assert to_roman(11) == "XI", "11 should return XI" -assert to_roman(60) == "LX", "60 should return LX" -assert to_roman(78) == "LXXVIII", "78 should return LXXVIII" -assert to_roman(4) == "IV", "4 should return IV" -assert to_roman(99) == "XCIX", "99 should return XCIX" - -# Add your own assert tests below +# Add your own assert tests below \ No newline at end of file