Advertisement
Guest User

Untitled

a guest
Feb 12th, 2016
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. import math
  2.  
  3. def digit(digits,num, n, upper, outlier, lower):
  4. multip = math.pow(10,n)
  5.  
  6. if num >= multip:
  7. hundreds = int(num / multip)
  8. if hundreds == 9:
  9. digits.append(lower+upper)
  10. num -= (9 * multip)
  11. elif hundreds > 4:
  12. digits.append(outlier)
  13. num -= (5 * multip)
  14. elif hundreds == 4:
  15. digits.append(lower+outlier)
  16. num -= (4 * multip)
  17. for i in range(int(num/multip)):
  18. digits.append(lower)
  19. num-= multip
  20. return num, digits
  21.  
  22. def intToRoman(num):
  23.  
  24. digits = []
  25.  
  26. thousands = int(num / 1000)
  27. if thousands > 0:
  28. [digits.append("M") for i in range(thousands)]
  29. num = num - (1000 * thousands)
  30.  
  31. num, digits = digit(digits, num, 2, 'M', 'D','C')
  32. num, digits = digit(digits, num, 1, 'C', 'L','X')
  33. num, digits = digit(digits, num, 0, 'X', 'V','I')
  34.  
  35. return "".join(digits)
  36.  
  37.  
  38. print 554, intToRoman(554)
  39. print 449, intToRoman(449)
  40. print 1, intToRoman(1)
  41. print 114, intToRoman(114)
  42. print 1114, intToRoman(1114)
  43. print 1914, intToRoman(1914)
  44. print 1994, intToRoman(1994)
  45. print 1984, intToRoman(1984)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement