Convert an Integer To a Roman Numeral | Live Coding Challenge | Episode 4

preview_player
Показать описание
The fourth episode of "Problem Solving with Turing", takes you through a different problem, and this time we use JavaScript to convert programming to convert an integer to a roman numeral. Join the live to ace coding challenges and crack technical interviews with ease.

Become a Turing software developer today.

Рекомендации по теме
Комментарии
Автор

Solution:

var intToRoman = function(num) {
let romanNum = [
{number: 1000, roman:'M'},
{number: 900, roman:'CM'},
{number: 500, roman:'D'},
{number: 400, roman:'CD'},
{number: 100, roman:'C'},
{number: 90, roman:'XC'},
{number: 50, roman:"L"},
{number: 40, roman:"XL"},
{number: 10, roman:"X"},
{number: 9, roman:"IX"},
{number: 5, roman:"V"},
{number: 4, roman:"IV"},
{number: 1, roman:'I'}
]

let letter='';
for(let i=0; i<romanNum.length; i++){
if(num>=romanNum[i].number){

num=num-romanNum[i].number;
i--
}
}
return letter;
};

jetic
Автор

var romanNumsMap = new Map([
[1000, 'M'],
[500, 'D'],
[100, 'C'],
[50, 'L'],
[10, 'X'],
[5, 'V'],
[1, 'I']
]);

var intToRoman = function(num, romanNum = romanNumsMap) {
let romanString = '';
let remainder = num;

while(remainder > 0) {
let baseNumber = Math.pow(10,

if(baseNumber * 9 <= remainder) {
remainder -= baseNumber * 9;
romanString = romanString.concat(
romanNum.get(baseNumber), romanNum.get(baseNumber * 10));
continue;
}

if(baseNumber * 5 <= remainder) {
remainder -= baseNumber * 5;
romanString = * 5));
} else if(baseNumber * 4 <= remainder) {
remainder -= baseNumber * 4;
romanString = romanString.concat(
romanNum.get(baseNumber), romanNum.get(baseNumber * 5));
continue;
}

while(baseNumber <= remainder) {
remainder -= baseNumber;
romanString =
}
}

return romanString;
}

diegosousa
Автор

const romanNumber = (num) => {
let result = "";

if (num < 1 || num > 3999) return result;

let iterations = num.toString().length;

const hash = {
1: "I",
5: "V",
10: "X",
50: "L",
100: "C",
500: "D",
1000: "M"
};

while (iterations) {
let maxUnit = Math.pow(10, iterations - 1);
let reduced = Math.floor(num / maxUnit);
num = Math.floor(num % maxUnit);

if (reduced < 4) {
result +=
} else if (reduced === 4 || reduced === 9) {
result += hash[maxUnit] + hash[maxUnit * (reduced + 1)];
} else if (reduced === 5) {
result += hash[maxUnit * 5];
} else {
result += hash[maxUnit * 5] + hash[maxUnit].repeat(reduced - 5);
}

iterations--;
}
return result;
};

EstefaniaCabral-heer