Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. const conversions = {
  2. 0: '', 1: 'I', 2: 'II', 3: 'III', 4: 'IV', 5: 'V',
  3. 6: 'VI', 7: 'VII', 8: 'VIII', 9: 'IX', 10: 'X',
  4. 20: 'XX', 30: 'XXX', 40: 'XL', 50: 'L', 60: 'LX',
  5. 70: 'LXX', 80: 'LXXX', 90: 'XC', 100: 'C', 200: 'CC',
  6. 300: 'CCC', 400: 'CD', 500: 'D', 600: 'DC', 700: 'DCC',
  7. 800: 'DCCC', 900: 'CM', 1000: 'M', 2000: 'MM', 3000: 'MMM'
  8. };
  9.  
  10. function convertToRoman(num) {
  11. const numArray = String(num).split('');
  12. const len = numArray.length;
  13. const ones = conversions[Number(numArray[numArray.length - 1])];
  14. let thousands, hundreds, tens;
  15. let ans = '';
  16.  
  17. switch(len) {
  18. case 1:
  19. ans = ones;
  20. break;
  21. case 2:
  22. tens = numArray[0] + '0';
  23. ans = conversions[Number(tens)] + ones;
  24. break;
  25. case 3:
  26. hundreds = numArray[0] + '00';
  27. tens = numArray[1] + '0';
  28. ans = conversions[Number(hundreds)] + conversions[Number(tens)] + ones;
  29. break;
  30. case 4:
  31. thousands = numArray[0] + '000';
  32. hundreds = numArray[1] + '00';
  33. tens = numArray[2] + '0';
  34. ans = conversions[Number(thousands)] + conversions[Number(hundreds)] + conversions[Number(tens)] + ones;
  35. break;
  36. default:
  37. ans = 'Cannot find roman numeral equivelent';
  38. break;
  39. }
  40.  
  41. return ans;
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement