aboutsummaryrefslogtreecommitdiff
path: root/challenge-262/adam-russell
diff options
context:
space:
mode:
authorAdam Russell <ac.russell@live.com>2024-03-30 22:52:58 -0400
committerAdam Russell <ac.russell@live.com>2024-03-30 22:52:58 -0400
commit996f990b197a7867c3dc966cef2e84f9745d2388 (patch)
tree8eaaadb145bb193167b89129a6bdc8b77dfaba88 /challenge-262/adam-russell
parent041fe9129e3ef4d86df461a0feeee1b3740d5758 (diff)
downloadperlweeklychallenge-club-996f990b197a7867c3dc966cef2e84f9745d2388.tar.gz
perlweeklychallenge-club-996f990b197a7867c3dc966cef2e84f9745d2388.tar.bz2
perlweeklychallenge-club-996f990b197a7867c3dc966cef2e84f9745d2388.zip
initial commit
Diffstat (limited to 'challenge-262/adam-russell')
-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/;