diff options
| author | chirvasitua <stuart-little@users.noreply.github.com> | 2021-05-24 10:49:42 -0400 |
|---|---|---|
| committer | chirvasitua <stuart-little@users.noreply.github.com> | 2021-05-24 20:16:50 -0400 |
| commit | 7fbac193b039a63c8ac5a4452a3a8f5a4e1b7afc (patch) | |
| tree | aeaec2450dae1d5ee94db66674a53cb31d0b0c6f | |
| parent | a2dcbbbcc3a246b0136e40aee20170a021f0b573 (diff) | |
| download | perlweeklychallenge-club-7fbac193b039a63c8ac5a4452a3a8f5a4e1b7afc.tar.gz perlweeklychallenge-club-7fbac193b039a63c8ac5a4452a3a8f5a4e1b7afc.tar.bz2 perlweeklychallenge-club-7fbac193b039a63c8ac5a4452a3a8f5a4e1b7afc.zip | |
1st commit on 114_raku
| -rwxr-xr-x | challenge-114/stuart-little/raku/ch-1.p6 | 19 | ||||
| -rwxr-xr-x | challenge-114/stuart-little/raku/ch-2.p6 | 10 |
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); + + |
