Guest User

Untitled

a guest
Dec 11th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.92 KB | None | 0 0
  1. var finalRomanNumber = [];
  2. var convertedElement = "";
  3. var threeDigitNumber = "";
  4. var fourDigitNumber = "";
  5.  
  6. function convertToRomanNumberal(num){
  7.  
  8. var convertedNumber = num.toString();
  9.  
  10. convertedNumber = convertedNumber.split('');
  11. var digits = convertedNumber.length;
  12. if(digits > 4){
  13. alert('Please insert a number that is composed of maximum 4 digits');
  14. } else {
  15.  
  16. if(digits === 1) {
  17. for(var i = 1; i <= convertedNumber ; i++) {
  18. convertedElement += 'I';
  19. if(i === 4) {
  20. convertedElement = 'IV';
  21. } else if( i === 5) {
  22. convertedElement = "V";
  23. } else if(i === 9) {
  24. convertedElement = 'IX';
  25. }
  26.  
  27. }
  28. } else if (digits === 2) {
  29. lastTwoDigitLoop(0,1);
  30.  
  31. } else if (digits === 3) {
  32.  
  33. lastThreeDigitsLoop(0,1,2);
  34.  
  35. } else if ( digits === 4) {
  36. //alert an error message if the first digit in the number is greater than 4
  37. if(convertedNumber[0] > 4) {
  38. alert(convertedNumber.join('') + ' is not valid. Please try with a lower number(e.g. highest number is : 4999). ');
  39. }
  40. for(var i = 1; i <= convertedNumber[0]; i++) {
  41. fourDigitNumber += 'M';
  42. }
  43. lastThreeDigitsLoop(1,2,3);
  44. fourDigitNumber += convertedElement;
  45. convertedElement = fourDigitNumber;
  46. }
  47. }
  48.  
  49. //function that loops and slices the string, forming the coresponding Roman Numerals for the last two digits in a number
  50. function lastTwoDigitLoop(firstIndex, secondIndex){
  51.  
  52. for(var j = 1; j <= convertedNumber[firstIndex]; j++){
  53. convertedElement += 'X';
  54. if(j === 4) {
  55. convertedElement = 'XL';
  56. } else if( j === 5) {
  57. convertedElement = "L";
  58. } else if( j > 9 ){
  59. convertedElement+='X';
  60. } else if(j === 9) {
  61. convertedElement = 'XC';
  62. }
  63. }
  64.  
  65. for(var k = 1; k <=convertedNumber[secondIndex]; k++) {
  66. convertedElement += 'I';
  67. if (k === 4) {
  68. convertedElement = convertedElement.slice(0, -4);
  69. convertedElement += 'IV';
  70. }
  71. else if ( k === 5 ) {
  72. convertedElement = convertedElement.slice(0, -3);
  73. convertedElement += 'V';
  74. } else if( k === 9) {
  75. convertedElement = convertedElement.slice(0, -5);
  76. convertedElement += 'IX';
  77. }
  78. }
  79. }
  80. function lastThreeDigitsLoop(firstDigitIndex, secondDigitIndex, thirdDigitIndex) {
  81. for(var i = 1; i <= convertedNumber[firstDigitIndex]; i++) {
  82.  
  83. threeDigitNumber += 'C';
  84. if( i === 4) {
  85. threeDigitNumber = 'CD';
  86. } else if(i === 5) {
  87. threeDigitNumber = 'D';
  88. } else if(i === 9) {
  89. threeDigitNumber = 'CM'
  90. }
  91.  
  92. }
  93. lastTwoDigitLoop(secondDigitIndex,thirdDigitIndex);
  94. threeDigitNumber += convertedElement;
  95. convertedElement = threeDigitNumber;
  96.  
  97.  
  98. }
  99. //this will be the end result that will be the output in the console
  100. console.log(convertedElement);
  101.  
  102. }
  103.  
  104. convertToRomanNumberal(4989);
Add Comment
Please, Sign In to add comment