JS 实现数字转罗马数字
JS 实现数字转罗马数字,最近楼主在写w3c的算法挑战,现在到这个转换实现这里了,所以想着写个博客,看看自己的实现方法和大家的有什么出入的,还望大家多多指教,附上源代码
function convert(num) {
if(num > 3999 || num < 0){
return "超出计算范围!";
}
var strNum = num + "";
var result ="";
for(var i = 0; i < strNum.length;i++){
var data = strNum.charAt(i);
if(data == "0"){
continue;
}
result+= getLuoma(parseInt(data) - 1,strNum.length - i - 1);
}
return result;
}
function getLuoma(num,pos){
var gearr = ["I","II","III","IV","V","VI","VII","VIII","IX"];
var shiarr = ["X","XX","XXX","XL","L","LX","LXX","LXXX","XC"];
var baiarr = ["C","CC","CCC","CD","D","DC","DCC","DCCC","CM"];
var qianarr = ["M","MM","MMM"];
var data = [];
data.push(gearr,shiarr,baiarr,qianarr);
return data[pos][num];
}