aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-05-25 15:47:13 +0100
committerGitHub <noreply@github.com>2021-05-25 15:47:13 +0100
commitb3cdcf2df7ddf535404a2728838eb98697790db1 (patch)
tree2290023c8b0a0a10ca60e96ab850ab7e98d6089e
parenta9081aee6e95800c765061d9bf1587ea42301e05 (diff)
parent7fbac193b039a63c8ac5a4452a3a8f5a4e1b7afc (diff)
downloadperlweeklychallenge-club-b3cdcf2df7ddf535404a2728838eb98697790db1.tar.gz
perlweeklychallenge-club-b3cdcf2df7ddf535404a2728838eb98697790db1.tar.bz2
perlweeklychallenge-club-b3cdcf2df7ddf535404a2728838eb98697790db1.zip
Merge pull request #4138 from stuart-little/stuart-little_114_raku
1st commit on 114_raku
-rwxr-xr-xchallenge-114/stuart-little/raku/ch-1.p619
-rwxr-xr-xchallenge-114/stuart-little/raku/ch-2.p610
2 files changed, 29 insertions, 0 deletions
diff --git a/challenge-114/stuart-little/raku/ch-1.p6 b/challenge-114/stuart-little/raku/ch-1.p6
new file mode 100755
index 0000000000..1d5a32cb02
--- /dev/null
+++ b/challenge-114/stuart-little/raku/ch-1.p6
@@ -0,0 +1,19 @@
+#!/usr/bin/env perl6
+use v6;
+
+# run <script> <number>
+
+(@*ARGS[0] ~~ /^9+$/) && do {
+ say @*ARGS[0].Int+2;
+ exit;
+};
+
+my $nrDig = @*ARGS[0].chars;
+
+sub doubleUp($nrDig,$initHalf) {
+ return $initHalf ~ (($nrDig % 2) ?? (substr($initHalf, 0, *-1).flip) !! ($initHalf.flip))
+}
+
+my $initHalf = substr(@*ARGS[0], 0, ($nrDig/2).ceiling);
+
+say((doubleUp($nrDig,$initHalf).Int > @*ARGS[0].Int) ?? (doubleUp($nrDig,$initHalf)) !! (doubleUp($nrDig,($initHalf.Int+1).Str)));
diff --git a/challenge-114/stuart-little/raku/ch-2.p6 b/challenge-114/stuart-little/raku/ch-2.p6
new file mode 100755
index 0000000000..2f31a9c162
--- /dev/null
+++ b/challenge-114/stuart-little/raku/ch-2.p6
@@ -0,0 +1,10 @@
+#!/usr/bin/env perl6
+use v6;
+
+# run <script> <number>
+
+say "Initial number in base two: ", my $binNr = sprintf("0%b", @*ARGS[0]);
+say "Next number in base two: ", my $next = ((@*ARGS[0].Int % 2) ?? (S!01(1*)$!10$0! with $binNr) !! (S!01(1*)(0*)$!10$1$0! with $binNr));
+say "Next number in base ten: ", parse-base($next,2);
+
+