Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | 18x 18x 18x 18x 234x 37x 37x 37x 18x | export default function intToRoman(num: number): string {
const map = new Map<number, string>([
[1000, 'M'],
[900, 'CM'],
[500, 'D'],
[400, 'CD'],
[100, 'C'],
[90, 'XC'],
[50, 'L'],
[40, 'XL'],
[10, 'X'],
[9, 'IX'],
[5, 'V'],
[4, 'IV'],
[1, 'I'],
])
let roman = ''
let left = num
for (const [num, str] of map.entries()) {
if (left >= num) {
const times = Math.floor(left / num)
roman += str.repeat(times)
left -= num * times
}
}
return roman
}
|