20 lines
515 B
Plaintext
20 lines
515 B
Plaintext
func arabic2roman(num, roman='') {
|
|
static lookup = [
|
|
: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
|
|
];
|
|
lookup.each { |pair|
|
|
while (num >= pair.second) {
|
|
roman += pair.first;
|
|
num -= pair.second;
|
|
}
|
|
}
|
|
return roman;
|
|
}
|
|
say("1990 in roman is " + arabic2roman(1990));
|
|
say("2008 in roman is " + arabic2roman(2008));
|
|
say("1666 in roman is " + arabic2roman(1666));
|