Advertisement
furas

arabic-to-roman

Mar 10th, 2017
255
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.80 KB | None | 0 0
  1. romans_numbers = (
  2.     ('M', 1000),
  3.     ('CM', 900), ('D', 500), ('CD', 400), ('C', 100),
  4.     ('XC', 90), ('L', 50), ('XL', 40), ('X', 10),
  5.     ('IX', 9), ('V', 5), ('IV', 4), ('I', 1)
  6. )
  7.  
  8. def convert(arabic):
  9.     romans = ''
  10.     for number_roman, number_arabic in romans_numbers:
  11.         while arabic >= number_arabic:
  12.             romans += number_roman
  13.             arabic -= number_arabic    
  14.     return romans
  15.  
  16. # --- tests ---
  17.  
  18. tests = (
  19.     (499, 'CDXCIX'),
  20.  
  21.     (1001, 'MI'),
  22.     (1000, 'M'),
  23.     (30, 'XXX'),
  24.     (29, 'XXIX'),
  25.     (6, 'VI'),
  26.     (5, 'V'),
  27.     (4, 'IV'),    
  28. )    
  29.    
  30. for roman, arabic in tests:
  31.     print( roman, arabic, convert(roman) == arabic)
  32.  
  33. '''
  34. 499 CDXCIX True
  35. 1001 MI True
  36. 1000 M True
  37. 30 XXX True
  38. 29 XXIX True
  39. 6 VI True
  40. 5 V True
  41. 4 IV True
  42. '''
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement