From b482a376f6fb50ade494afd9be16770c150799ed Mon Sep 17 00:00:00 2001 From: Pavel Date: Mon, 27 May 2019 10:50:27 +0200 Subject: draft --- challenge-010/pavel-jurca/ch-1.pl | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 challenge-010/pavel-jurca/ch-1.pl diff --git a/challenge-010/pavel-jurca/ch-1.pl b/challenge-010/pavel-jurca/ch-1.pl new file mode 100644 index 0000000000..1b8f0220c1 --- /dev/null +++ b/challenge-010/pavel-jurca/ch-1.pl @@ -0,0 +1,37 @@ +use 5.010.1; + +use strict; +use warnings; + +my %roman = reverse qw/ + I 1 + V 5 + X 10 + L 50 + C 100 + D 500 + M 1000 +/; + +# === MAIN === +say encode(2019); +# ============ + +sub encode { + # "additive" notation + # https://en.wikipedia.org/wiki/Roman_numerals#Use_of_additive_notation + + my $integer = shift; + my @r; + + ROMAN: + for ( sort { $b <=> $a } keys %roman ) { + push @r, $roman{$_} x int $integer / $_; + + $integer %= $_; + } + + join '', @r; +} + +sub decode {} -- cgit