From c9b3d25c5336d2be0e124eba6886c9397f28ed3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonathan=20G=C3=B3mez?= Date: Tue, 1 Oct 2019 08:04:18 -0500 Subject: [PATCH] Create RomanToDecimal.js Conversion from Roman numeral system to decimal --- Conversions/RomanToDecimal.js | 38 +++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 Conversions/RomanToDecimal.js diff --git a/Conversions/RomanToDecimal.js b/Conversions/RomanToDecimal.js new file mode 100644 index 000000000..812b5220a --- /dev/null +++ b/Conversions/RomanToDecimal.js @@ -0,0 +1,38 @@ +var values = { + 'I':1, + 'V':5, + 'X':10, + 'L':50, + 'C':100, + 'D':500, + 'M':1000 +}; + +function romanToDecimal(romanNumber){ + let prev = ' '; + + let sum = 0; + + let newPrev = 0; + for(let i = romanNumber.length - 1; i >= 0; i--){ + let c = romanNumber.charAt(i); + + if(prev !== ' '){ + newPrev = values[prev] > newPrev ? values[prev] : newPrev; + } + + let currentNum = values[c]; + if(currentNum >= newPrev){ + sum += currentNum; + } else { + sum -= currentNum; + } + + prev = c; + } + return sum; +} + +console.log(romanToDecimal('XXIIVV')); +console.log(romanToDecimal('MDCCCIV')); +console.log(romanToDecimal('XXIVI'));