Введение
В этом лабораторном занятии мы рассмотрим, как преобразовать целое число в его римское числовое представление с использованием JavaScript. Мы будем использовать таблицу поиска (lookup table), чтобы сопоставить целые значения с соответствующими римскими цифрами, а затем воспользуемся методом reduce, чтобы пройти по значениям и построить римское числовое представление входного целого числа. По завершении этого лабораторного занятия вы получите более глубокое понимание того, как манипулировать массивами и строками в JavaScript для выполнения сложных задач.
Преобразование целого числа в римское число
Для преобразования целого числа в его римское числовое представление следуйте этим шагам:
Откройте Терминал/SSH и введите
node, чтобы начать практиковаться в программировании.Функция
toRomanNumeral()принимает значения от1до3999(включительно).Создайте таблицу поиска (lookup table), содержащую массивы из двух значений в виде (римское значение, целое число).
Используйте
Array.prototype.reduce(), чтобы пройти по значениям вlookupи последовательно разделитьnumна это значение.Используйте
String.prototype.repeat(), чтобы добавить римское числовое представление к накопителю.
Вот код функции toRomanNumeral():
const toRomanNumeral = (num) => {
const lookup = [
["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]
];
return lookup.reduce((acc, [k, v]) => {
acc += k.repeat(Math.floor(num / v));
num = num % v;
return acc;
}, "");
};
Вы можете протестировать функцию с помощью этих примеров:
toRomanNumeral(3); // 'III'
toRomanNumeral(11); // 'XI'
toRomanNumeral(1998); // 'MCMXCVIII'
Итог
Поздравляем! Вы завершили лабораторное занятие по преобразованию целых чисел в римские числа. Вы можете попрактиковаться в других лабораторных занятиях в LabEx, чтобы улучшить свои навыки.