diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2023-05-25 18:00:26 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-05-25 18:00:26 +0100 |
| commit | 4bb4dfe32c3207faf5096c583c0f0ca5cfd68dbc (patch) | |
| tree | 6f12d077a3a01ea2535d962c7ad04172d9fac0f4 /challenge-218 | |
| parent | bdbe9928d7ef55ac7fef9bacaf12b414b78df951 (diff) | |
| parent | 9a29e677aeea1b616e6fcf9eff5dc4e92f36b98f (diff) | |
| download | perlweeklychallenge-club-4bb4dfe32c3207faf5096c583c0f0ca5cfd68dbc.tar.gz perlweeklychallenge-club-4bb4dfe32c3207faf5096c583c0f0ca5cfd68dbc.tar.bz2 perlweeklychallenge-club-4bb4dfe32c3207faf5096c583c0f0ca5cfd68dbc.zip | |
Merge pull request #8132 from oldtechaa/avery-adams-218
Solution for task 1 for Avery Adams week 218
Diffstat (limited to 'challenge-218')
| -rw-r--r-- | challenge-218/avery-adams/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-218/avery-adams/blog1.txt | 1 | ||||
| -rw-r--r-- | challenge-218/avery-adams/perl/ch-1.pl | 36 |
3 files changed, 38 insertions, 0 deletions
diff --git a/challenge-218/avery-adams/blog.txt b/challenge-218/avery-adams/blog.txt new file mode 100644 index 0000000000..497b60280b --- /dev/null +++ b/challenge-218/avery-adams/blog.txt @@ -0,0 +1 @@ +https://dev.to/oldtechaa/perl-weekly-challenge-218-feeling-negative-3gdc
\ No newline at end of file diff --git a/challenge-218/avery-adams/blog1.txt b/challenge-218/avery-adams/blog1.txt new file mode 100644 index 0000000000..4cf155ebd2 --- /dev/null +++ b/challenge-218/avery-adams/blog1.txt @@ -0,0 +1 @@ +https://blogs.perl.org/users/oldtechaa/2023/05/perl-weekly-challenge-218---feeling-negative.html
\ No newline at end of file diff --git a/challenge-218/avery-adams/perl/ch-1.pl b/challenge-218/avery-adams/perl/ch-1.pl new file mode 100644 index 0000000000..1c5bad2be8 --- /dev/null +++ b/challenge-218/avery-adams/perl/ch-1.pl @@ -0,0 +1,36 @@ +#!/usr/bin/perl + +use strict; +use v5.24; + +my @sorted = sort {abs($b) <=> abs($a)} @ARGV; +my $complete; +until ($complete) { + my $negCount = isNeg($sorted[0]) + isNeg($sorted[1]) + isNeg($sorted[2]); + if ($negCount == 2 || $negCount == 0) { + $complete = 1; + } else { + my $positives; + for (2..$#sorted) { + $positives = 1 if !isNeg($sorted[$_]); + } + if ($positives) { + for (2, 1, 0) { + if (abs($sorted[$_]) == $sorted[$_]) { + next; + } else { + splice (@sorted, $_, 1); + last; + } + } + } else { + say $sorted[-1] * $sorted[-2] * $sorted[-3] and exit; + } + } +} +say $sorted[0] * $sorted[1] * $sorted[2]; + +sub isNeg { + my $num = shift; + return $num < 0 ? 1 : 0; +} |
