#!/usr/bin/ruby
# Translation of: https://rosettacode.org/wiki/Roman_numerals/Encode#ActionScript
func arabic2roman (num) {
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],
];
var roman = '';
for (lookup) { |arr|
var (r, a) = arr...;
while (num >= a) {
roman += r;
num -= a;
}
}
return(roman);
}
#
## MAIN
#
[1990::MCMXC, 2008::MMVIII, 1666::MDCLXVI].each { |pair|
var roman = arabic2roman(pair[0]);
roman == pair[1] || "Error occurred on number: #{pair[0]}\n".die;
"%s in roman is %s".printlnf(pair[0], roman);
}