Код Leet — Функция перевода целого числа в римскую цифру в JavaScript


Алгоритм

для десятичного числа X

  • Создайте объект для каждого символа в качестве ключа и его соответствующего значения
  const roman = {
    M: 1000,
    CM: 900,
    D: 500,
    CD: 400,
    C: 100,
    XC: 90,
    L: 50,
    XL: 40,
    X: 10,
    IX: 9,
    V: 5,
    IV: 4,
    I: 1
  };
Вход в полноэкранный режим Выйти из полноэкранного режима
  • найти наибольшее десятичное значение V, которое меньше или
    меньше или равно десятичному числу X.

  • Сохраните римскую цифру, найденную после вычитания
    значения V из X

  • Повторяйте описанный выше процесс, пока не получите нулевое значение X.

Пример

X = 36

Функция Javascript для преобразования целого числа в римскую цифру



/**
 * @param {number} num
 * @return {string}
 */
const roman = {
    M: 1000,
    CM: 900,
    D: 500,
    CD: 400,
    C: 100,
    XC: 90,
    L: 50,
    XL: 40,
    X: 10,
    IX: 9,
    V: 5,
    IV: 4,
    I: 1
  };
var intToRoman = function(num,result=[]) { 
if(num == 0){
  return ''
}
for(const props in roman){
 if(roman[props]<=num){
  result.push(props);
  num = num - roman[props];
  intToRoman(num,result);
  return result.join("");
} 

}

};
console.log(intToRoman(36));
Войти в полноэкранный режим Выход из полноэкранного режима

Тестовые случаи :

Input: num = 3
Output: "III"
Explanation: 3 is represented as 3 ones.

Input: num = 58
Output: "LVIII"
Explanation: L = 50, V = 5, III = 3.

Input: num = 1994
Output: "MCMXCIV"
Explanation: M = 1000, CM = 900, XC = 90 and IV = 4.

Оцените статью
devanswers.ru
Добавить комментарий