aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2024-12-24 12:55:41 +0000
committerGitHub <noreply@github.com>2024-12-24 12:55:41 +0000
commitbccae08dc1de6129f4fa12834cba48b3beed4c2b (patch)
treeb1dc766731bb14336d2adebddab78fadbf99c70b
parent2a352a813f3814e9e79781f8156cbcd8abf1630b (diff)
parent993d837025d86e30aa0e6bee186b60fe2ad46c75 (diff)
downloadperlweeklychallenge-club-bccae08dc1de6129f4fa12834cba48b3beed4c2b.tar.gz
perlweeklychallenge-club-bccae08dc1de6129f4fa12834cba48b3beed4c2b.tar.bz2
perlweeklychallenge-club-bccae08dc1de6129f4fa12834cba48b3beed4c2b.zip
Merge pull request #11351 from wambash/challenge-week-301
solutions week 301
-rw-r--r--challenge-301/wambash/raku/ch-1.raku21
-rw-r--r--challenge-301/wambash/raku/ch-2.raku26
2 files changed, 47 insertions, 0 deletions
diff --git a/challenge-301/wambash/raku/ch-1.raku b/challenge-301/wambash/raku/ch-1.raku
new file mode 100644
index 0000000000..0a50a9f7bf
--- /dev/null
+++ b/challenge-301/wambash/raku/ch-1.raku
@@ -0,0 +1,21 @@
+#!/usr/bin/env raku
+
+sub largest-number (+@ints) {
+ my $max-length = @ints.map(*.chars).max;
+
+ @ints
+ andthen .sort: { $_ x $max-length }\
+ andthen .reverse
+ andthen [~] $_
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is largest-number(20, 3),320;
+ is largest-number(3, 30, 34, 5, 9),9534330;
+ done-testing;
+}
+
+multi MAIN (+@ints) {
+ say largest-number @ints
+}
diff --git a/challenge-301/wambash/raku/ch-2.raku b/challenge-301/wambash/raku/ch-2.raku
new file mode 100644
index 0000000000..24151021db
--- /dev/null
+++ b/challenge-301/wambash/raku/ch-2.raku
@@ -0,0 +1,26 @@
+#!/usr/bin/env raku
+
+sub hamming-distance (+@ints) {
+ my $elems = @ints.elems;
+
+ @ints
+ andthen .map: { .polymod: 2 xx * }\
+ andthen roundrobin $_
+ andthen .map: *.sum
+ andthen .map: { $_ * ($elems - $_) }\
+ andthen .sum
+}
+
+multi MAIN (Bool :test($)!) {
+ use Test;
+ is hamming-distance(4,14,2),6;
+ is hamming-distance(4,14,4),4;
+ subtest {
+ is hamming-distance(^(2**$_)), $_ * 4**($_-1) for ^16;
+ }
+ done-testing;
+}
+
+multi MAIN (+@ints) {
+ say hamming-distance @ints
+}