@kuzanatoliorg/algorithms
Version:
The utils package for react testing library
62 lines (61 loc) • 2.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.turnRomeNumberToNumber = void 0;
const rome_numbers_constants_1 = require("./rome-numbers.constants");
const turnRomeNumberToNumber = (num) => {
let res = '';
while (num >= rome_numbers_constants_1.M) {
res += 'M';
num -= rome_numbers_constants_1.M;
}
if (num >= rome_numbers_constants_1.M - rome_numbers_constants_1.C) {
res += 'CM';
num -= rome_numbers_constants_1.M - rome_numbers_constants_1.C;
}
if (num >= rome_numbers_constants_1.D) {
res += 'D';
num -= rome_numbers_constants_1.D;
}
if (num >= rome_numbers_constants_1.D - rome_numbers_constants_1.C) {
res += 'CD';
num -= rome_numbers_constants_1.D - rome_numbers_constants_1.C;
}
while (num >= rome_numbers_constants_1.C) {
res += 'C';
num -= rome_numbers_constants_1.C;
}
if (num >= rome_numbers_constants_1.C - rome_numbers_constants_1.X) {
res += 'XC';
num -= rome_numbers_constants_1.C - rome_numbers_constants_1.X;
}
if (num >= rome_numbers_constants_1.L) {
res += 'L';
num -= rome_numbers_constants_1.L;
}
if (num >= rome_numbers_constants_1.L - rome_numbers_constants_1.X) {
res += 'XL';
num -= rome_numbers_constants_1.L - rome_numbers_constants_1.X;
}
while (num >= rome_numbers_constants_1.X) {
res += 'X';
num -= rome_numbers_constants_1.X;
}
if (num >= rome_numbers_constants_1.X - rome_numbers_constants_1.I) {
res += 'IX';
num -= rome_numbers_constants_1.X - rome_numbers_constants_1.I;
}
if (num >= rome_numbers_constants_1.V) {
res += 'V';
num -= rome_numbers_constants_1.V;
}
if (num >= rome_numbers_constants_1.V - rome_numbers_constants_1.I) {
res += 'IV';
num -= rome_numbers_constants_1.V - rome_numbers_constants_1.I;
}
while (num >= rome_numbers_constants_1.I) {
res += 'I';
num -= rome_numbers_constants_1.I;
}
return res;
};
exports.turnRomeNumberToNumber = turnRomeNumberToNumber;