力扣链接:12.整数转罗马数字
难度:⭐⭐
解题关键词:数组
、map
解题思路:创建一个值和符号映射的关系表,遍历,如果要找的数字比 value 大,那么用 while 转换,当等于了 0,break,最后返回转换的罗马符号。
typescript
function intToRoman(num: number): string {
let result = "";
const valueMap = [
[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"],
];
for (const [value, symbol] of valueMap) {
while (num >= +value) {
num -= +value;
result += symbol;
}
if (num === 0) {
break;
}
}
return result;
}