欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

RomanNumeralsEncoder题解:阿拉伯数字转罗马数字 给个对应表

程序员文章站 2022-09-11 09:30:38
[Codewars]-Roman Numerals Encoder 题目: 阿拉伯数字转罗马数字 给个对应表 symbol value...

[Codewars]-Roman Numerals Encoder

题目:

阿拉伯数字转罗马数字 给个对应表

symbol value
I 1
V 5
X 10
L 50
C 100
D 500
M 1000

- ps:2000 -> MM,8000 -> MMMMMMMM

思路:

按照题目,把数字分成几千几百几十很好转换,唯一问题是代码长不美观。

解答:

这不是本人答案,但这是我见过最简洁的答案了

function solution(number){
  // convert the number to a roman numeral
var  roman = {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 }

var ans = '';
while(number>0){
    for(a in roman){ 
        if(roman[a]<=number){ ans += a; number-=roman[a]; break;}

    }
}
return ans;
}