- 整数转罗马数字
这道题感觉是阅读理解题,同时罗马数字怎么表示的没说,要自己去“挖掘”。
根据罗马数字的唯一表示法,为了表示一个给定的整数 num,我们寻找不超过num 的最大符号值,将num 减去该符号值,然后继续寻找不超过num 的最大符号值,将该符号拼接在上一个找到的符号之后,循环直至num 为 00。最后得到的字符串即为的罗马数字表示。
题目给了 13 个字母,分别是上面7种和下面 6 种,表示 13 个数字,我们需要用这 13 个字母表示其他数字;
模拟法,模拟上面的罗马数字的唯一表示法来转化数字。
/**
* @param {number} num
* @return {string}
*/
var intToRoman = function(num) {
let standard = [[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 str = ''
for(let i=0;i<standard.length;i++){
//循环减去不超过num 的最大值
while(num>=standard[i][0]){
num-=standard[i][0];
str+=standard[i][1];
}
//等于 0 是退出循环
if(num===0) break;
}
return str;
};