All pastes #15755 Raw Edit

Kevin

public text v1 · immutable
#15755 ·published 2005-06-24 11:38 UTC
rendered paste body
#!/usr/bin/perl

print roman(1968) . "\n";

sub roman
{
    my $number = shift;
    $number =~ /(\d*?)(\d{1,3})$/;

    my $buf = 'M' x $1;
    my @digits = reverse split('',$2);

    my @numerals = (
        ['','I','II','III','IV','V','VI','VII','VIII','IX'],
        ['','X','XX','XXX','XL','L','LX','LXX','LXXX','XC'],
        ['','C','CC','CCC','CD','D','DC','DCC','DCCC','CM'],
    );

    for ($i = scalar(@digits) - 1; $i >= 0; $i--) {
        $buf .= $numerals[$i]->[$digits[$i]];
    }
    return $buf;
}