javascript
/**
* @param {number} num
* @return {string}
*/
var intToRoman = function (num) {
if (num < 1 || num > 3999) {
return
}
const map = {
1: 'I',
5: 'V',
10: 'X',
50: 'L',
100: 'C',
500: 'D',
1000: 'M',
}
let result = ''
let digtal = 10
while (num > 0) {
const n = num % 10
if (n <= 3) {
result = map[digtal / 10].repeat(n) + result
} else if (n === 4) {
result = map[digtal / 10] + map[digtal / 2] + result
} else if (n === 5) {
result = map[digtal / 2] + result
} else if (n <= 8) {
result = map[digtal / 2] + map[digtal / 10].repeat(n % 5) + result
}
if (n === 9) {
result = map[digtal / 10] + map[digtal] + result
}
num = Math.floor(num / 10)
digtal *= 10
}
return result
}