aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-06-06 13:30:42 +0100
committerGitHub <noreply@github.com>2021-06-06 13:30:42 +0100
commitfcb7ffe42cba2a5d4105ae9e0627869e764854dc (patch)
tree98742a8627ed5e6836a376a2d58e01f32c5532d6
parent6963973b74f7244b7cf8d81a1d581d4b21a031a9 (diff)
parentfc216cdb4be9bc9831c211aaede270bc5176e817 (diff)
downloadperlweeklychallenge-club-fcb7ffe42cba2a5d4105ae9e0627869e764854dc.tar.gz
perlweeklychallenge-club-fcb7ffe42cba2a5d4105ae9e0627869e764854dc.tar.bz2
perlweeklychallenge-club-fcb7ffe42cba2a5d4105ae9e0627869e764854dc.zip
Merge pull request #4199 from brtastic/master
Challenge 115-2 solution by brtastic
-rw-r--r--challenge-115/brtastic/perl/ch-2.pl34
1 files changed, 34 insertions, 0 deletions
diff --git a/challenge-115/brtastic/perl/ch-2.pl b/challenge-115/brtastic/perl/ch-2.pl
new file mode 100644
index 0000000000..28a2ce48bf
--- /dev/null
+++ b/challenge-115/brtastic/perl/ch-2.pl
@@ -0,0 +1,34 @@
+use v5.34;
+use warnings;
+
+use List::Util qw(first);
+
+sub largest_multiple
+{
+ my @digits = @_;
+
+ my @sorted_asc = sort { $a <=> $b } @digits;
+ my $smallest_index = first { $sorted_asc[$_] % 2 == 0 } keys @sorted_asc;
+
+ die 'no result divisible by 2 can be achieved'
+ unless defined $smallest_index;
+
+ my $smallest = splice @sorted_asc, $smallest_index, 1;
+ return join '', reverse(@sorted_asc), $smallest;
+
+}
+
+use Test::More;
+
+is largest_multiple(1, 0, 2, 6), 6210;
+is largest_multiple(1, 4, 2, 8), 8412;
+is largest_multiple(4, 1, 7, 6), 7614;
+is largest_multiple(1, 2, 3, 4, 5, 6, 7, 8, 9, 0), 9876543210;
+
+# this will throw
+eval {
+ largest_multiple(1, 1, 1, 1, 3);
+ fail;
+};
+
+done_testing;