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 1/2] 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')); From 0bb7942a4074999fd0d2a72d93d813b907bd9c4a Mon Sep 17 00:00:00 2001 From: itsvinayak Date: Sun, 21 Jun 2020 10:39:32 +0530 Subject: [PATCH 2/2] Create RomanToDecimal.js --- Conversions/RomanToDecimal.js | 70 +++++++++++++++++------------------ 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/Conversions/RomanToDecimal.js b/Conversions/RomanToDecimal.js index 812b5220a..24f7b0fe6 100644 --- a/Conversions/RomanToDecimal.js +++ b/Conversions/RomanToDecimal.js @@ -1,38 +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; + I: 1, + V: 5, + X: 10, + L: 50, + C: 100, + D: 500, + M: 1000 } -console.log(romanToDecimal('XXIIVV')); -console.log(romanToDecimal('MDCCCIV')); -console.log(romanToDecimal('XXIVI')); +function romanToDecimal (romanNumber) { + let prev = ' ' + + let sum = 0 + + let newPrev = 0 + for (let i = romanNumber.length - 1; i >= 0; i--) { + const c = romanNumber.charAt(i) + + if (prev !== ' ') { + newPrev = values[prev] > newPrev ? values[prev] : newPrev + } + + const 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'))