共计 878 个字符,预计需要花费 3 分钟才能阅读完成。
把传入的数字转为罗马数字
function convertToRoman(num) {
let numStr = ""+ num,result ="";
for(let i = 0 ;i<numStr.length;i++){result += NumToRoman(parseInt(numStr[i]),numStr.length - i)
}
return num;
}
function NumToRoman(num, length) {let romanSymbol = ["I", "V", "X", "L", "C", "D", "M"];
let startIdx = 2 * (length - 1);
let curSymbol = [];
for (let i = 0; i < 3; i++) {curSymbol.push(romanSymbol[startIdx + i]);
}
let result = "";
switch (num) {
case 1:
result = curSymbol[0];
break;
case 2:
result = curSymbol[0] + curSymbol[0];
break;
case 3:
result = curSymbol[0] + curSymbol[0] + curSymbol[0];
break;
case 4:
result = curSymbol[0] + curSymbol[1];
break;
case 5:
result = curSymbol[1];
break;
case 6:
result = curSymbol[1] + curSymbol[0];
break;
case 7:
result = curSymbol[1] + curSymbol[0] + curSymbol[0];
break;
case 8:
result = curSymbol[1] + curSymbol[0] + curSymbol[0] + curSymbol[0];
break;
case 9:
result = curSymbol[0] + curSymbol[2];
break;
}
return result;
}
convertToRoman(36);
思路: 依据传入的数字位数, 从罗马字符数组里截取 3 个,再依照传入数字进行组装,失去最终后果
正文完
发表至: javascript
2022-01-13