diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2021-06-06 13:30:42 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-06-06 13:30:42 +0100 |
| commit | fcb7ffe42cba2a5d4105ae9e0627869e764854dc (patch) | |
| tree | 98742a8627ed5e6836a376a2d58e01f32c5532d6 | |
| parent | 6963973b74f7244b7cf8d81a1d581d4b21a031a9 (diff) | |
| parent | fc216cdb4be9bc9831c211aaede270bc5176e817 (diff) | |
| download | perlweeklychallenge-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.pl | 34 |
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; |
