aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavel <paveljurca@users.noreply.github.com>2019-05-27 10:50:27 +0200
committerGitHub <noreply@github.com>2019-05-27 10:50:27 +0200
commitb482a376f6fb50ade494afd9be16770c150799ed (patch)
treefd40dd84ccddb49be950c73712056ac4afe349d1
parent3924b956b33c55bf5495db0973815a25e852f4f4 (diff)
downloadperlweeklychallenge-club-b482a376f6fb50ade494afd9be16770c150799ed.tar.gz
perlweeklychallenge-club-b482a376f6fb50ade494afd9be16770c150799ed.tar.bz2
perlweeklychallenge-club-b482a376f6fb50ade494afd9be16770c150799ed.zip
draft
-rw-r--r--challenge-010/pavel-jurca/ch-1.pl37
1 files changed, 37 insertions, 0 deletions
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 {}