diff options
| -rw-r--r-- | challenge-306/jaldhar-h-vyas/blog.txt | 1 | ||||
| -rwxr-xr-x | challenge-306/jaldhar-h-vyas/perl/ch-1.pl | 24 | ||||
| -rwxr-xr-x | challenge-306/jaldhar-h-vyas/perl/ch-2.pl | 20 | ||||
| -rwxr-xr-x | challenge-306/jaldhar-h-vyas/raku/ch-1.raku | 15 | ||||
| -rwxr-xr-x | challenge-306/jaldhar-h-vyas/raku/ch-2.raku | 24 |
5 files changed, 84 insertions, 0 deletions
diff --git a/challenge-306/jaldhar-h-vyas/blog.txt b/challenge-306/jaldhar-h-vyas/blog.txt new file mode 100644 index 0000000000..8b1d51c033 --- /dev/null +++ b/challenge-306/jaldhar-h-vyas/blog.txt @@ -0,0 +1 @@ +https://www.braincells.com/perl/2025/02/perl_weekly_challenge_week_306.html diff --git a/challenge-306/jaldhar-h-vyas/perl/ch-1.pl b/challenge-306/jaldhar-h-vyas/perl/ch-1.pl new file mode 100755 index 0000000000..b55e0b10da --- /dev/null +++ b/challenge-306/jaldhar-h-vyas/perl/ch-1.pl @@ -0,0 +1,24 @@ +#!/usr/bin/perl +use v5.38; + +sub sum { + my $total; + for my $n (@_) { + $total += $n; + } + + return $total; +} + +my @ints = @ARGV; +my $sum; + +for my $i (1 .. scalar @ints) { + if ($i % 2 == 1) { + for my $j (0 .. scalar @ints - $i) { + $sum += sum(@ints[$j .. $j + $i - 1]); + } + } +} + +say $sum; diff --git a/challenge-306/jaldhar-h-vyas/perl/ch-2.pl b/challenge-306/jaldhar-h-vyas/perl/ch-2.pl new file mode 100755 index 0000000000..54c8824a90 --- /dev/null +++ b/challenge-306/jaldhar-h-vyas/perl/ch-2.pl @@ -0,0 +1,20 @@ +#!/usr/bin/perl +use v5.38; + +my @ints = @ARGV; + +while (scalar @ints > 1) { + @ints = sort { $b <=> $a } @ints; + + my $y = $ints[0]; + my $x = $ints[1]; + + if ($x == $y) { + splice @ints, 0, 2; + } else { + splice @ints, 1, 1; + $ints[0] = $y - $x; + } +} + +say $ints[0] // 0; diff --git a/challenge-306/jaldhar-h-vyas/raku/ch-1.raku b/challenge-306/jaldhar-h-vyas/raku/ch-1.raku new file mode 100755 index 0000000000..35213f31cb --- /dev/null +++ b/challenge-306/jaldhar-h-vyas/raku/ch-1.raku @@ -0,0 +1,15 @@ +#!/usr/bin/raku + +sub MAIN( + *@ints +) { + my $sum; + + for 1, 3 ... @ints.elems -> $i { + for 0 .. @ints.elems - $i -> $j { + $sum += @ints[$j ..^ $j + $i].sum; + } + } + + say $sum; +} diff --git a/challenge-306/jaldhar-h-vyas/raku/ch-2.raku b/challenge-306/jaldhar-h-vyas/raku/ch-2.raku new file mode 100755 index 0000000000..992da36f22 --- /dev/null +++ b/challenge-306/jaldhar-h-vyas/raku/ch-2.raku @@ -0,0 +1,24 @@ +#!/usr/bin/raku + +sub MAIN( + *@args +) { + my @ints = @args; + + while @ints.elems > 1 { + @ints = @ints.sort({ $^b <=> $^a }); + + my $y = @ints[0]; + my $x = @ints[1]; + + if $x == $y { + @ints.splice(0, 2); + } else { + @ints.splice(1, 1); + @ints[0] = $y - $x; + } + } + + say @ints[0] // 0; +} + |
