Update 03-roman-numerals/roman.py
This commit is contained in:
		| @ -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" | ||||||
		Reference in New Issue
	
	Block a user