aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2024-03-31 13:37:43 +0100
committerGitHub <noreply@github.com>2024-03-31 13:37:43 +0100
commit62d888e28bc682671da85ed04fdeb9cd67ce04ef (patch)
tree5526a249ac03512ade6eee6a99634cdedc0a4ea4
parent8c9ae3c73fc1370daabe1090c1a9d4f701770543 (diff)
parent996f990b197a7867c3dc966cef2e84f9745d2388 (diff)
downloadperlweeklychallenge-club-62d888e28bc682671da85ed04fdeb9cd67ce04ef.tar.gz
perlweeklychallenge-club-62d888e28bc682671da85ed04fdeb9cd67ce04ef.tar.bz2
perlweeklychallenge-club-62d888e28bc682671da85ed04fdeb9cd67ce04ef.zip
Merge pull request #9836 from adamcrussell/challenge-262
initial commit
-rw-r--r--challenge-262/adam-russell/perl/ch-1.pl35
-rw-r--r--challenge-262/adam-russell/perl/ch-2.pl20
2 files changed, 55 insertions, 0 deletions
diff --git a/challenge-262/adam-russell/perl/ch-1.pl b/challenge-262/adam-russell/perl/ch-1.pl
new file mode 100644
index 0000000000..24e45f8055
--- /dev/null
+++ b/challenge-262/adam-russell/perl/ch-1.pl
@@ -0,0 +1,35 @@
+use v5.38;
+
+sub max_neg_pos{
+ my %m;
+ $m{-1} = 0;
+ $m{1} = 0;
+ do{
+ $m{-1}++ if $_ < 0;
+ $m{1}++ if $_ > 0;
+ } for @_;
+ return $m{-1}, $m{1};
+}
+
+my @max_neg_pos;
+my $max;
+
+@max_neg_pos = max_neg_pos -3, 1, 2, -1, 3, -2, 4;
+$max = (sort {$b <=> $a} @max_neg_pos)[0];
+say q/Count of positive integers: / . $max_neg_pos[1];
+say q/Count of negative integers: / . $max_neg_pos[0];
+say q/Maximum of count of positive and negative integers: / . $max;
+print qq/\n/;
+
+@max_neg_pos = max_neg_pos -1, -2, -3, 1;
+$max = (sort {$b <=> $a} @max_neg_pos)[0];
+say q/Count of positive integers: / . $max_neg_pos[1];
+say q/Count of negative integers: / . $max_neg_pos[0];
+say q/Maximum of count of positive and negative integers: / . $max;
+print qq/\n/;
+
+@max_neg_pos = max_neg_pos 1, 2;
+$max = (sort {$b <=> $a} @max_neg_pos)[0];
+say q/Count of positive integers: / . $max_neg_pos[1];
+say q/Count of negative integers: / . $max_neg_pos[0];
+say q/Maximum of count of positive and negative integers: / . $max;
diff --git a/challenge-262/adam-russell/perl/ch-2.pl b/challenge-262/adam-russell/perl/ch-2.pl
new file mode 100644
index 0000000000..341e3455ed
--- /dev/null
+++ b/challenge-262/adam-russell/perl/ch-2.pl
@@ -0,0 +1,20 @@
+use v5.38;
+
+sub count_equal_divisible{
+ my($integers, $k, $i, $j, $equal_divisible) = @_;
+ $i = 0 if !defined $i;
+ $j = 1 if !defined $j;
+ $equal_divisible = [] if !defined $equal_divisible;
+ push @{$equal_divisible}, [$i, $j] if $integers->[$i] == $integers->[$j] && 0 == (($i * $j) % $k);
+ count_equal_divisible($integers, $k, $i, $j + 1, $equal_divisible) if $j <= @{$integers} - 2;
+ count_equal_divisible($integers, $k, $i + 1, $i + 2, $equal_divisible) if $j == @{$integers} - 1 && $i < @{$integers} - 2;
+ return $equal_divisible;
+}
+
+my $r;
+$r = count_equal_divisible [3, 1, 2, 2, 2, 1, 3], 2;
+print @{$r} . q/: /;
+do{
+ print q/ [/ . $_->[0] . q/, / . $_->[1] . q/]/;
+} for @{$r};
+print qq/\n/;