Skip to content
陈广亮的技术博客
Go back

罗马数字解析

var res = {
  M: 1000, CM: 900, D: 500, CD: 400, C: 100, XC: 90,
  L: 50, XL: 40, X: 10, IX: 9, V: 5, IV: 4, I: 1,
};

// 罗马数字 → 数字
function solution(s) {
  var v = 0;
  for (var i in res) {
    while (s.substr(0, i.length) == i) {
      s = s.substr(i.length);
      v += res[i];
    }
  }
  return v;
}

// 数字 → 罗马数字
function toRoman(v) {
  var s = "";
  for (var i in res) {
    while (v >= res[i]) {
      s += i;
      v -= res[i];
    }
  }
  return s;
}

solution("XXI"); // 21
toRoman(21); // "XXI"

Share this post on:

Previous Post
function arguments 参数同步机制
Next Post
实现链式函数 add