diff options
Diffstat (limited to 'challenge-126')
| -rwxr-xr-x | challenge-126/stuart-little/raku/ch-1.raku | 12 | ||||
| -rwxr-xr-x | challenge-126/stuart-little/raku/ch-2.raku | 21 |
2 files changed, 33 insertions, 0 deletions
diff --git a/challenge-126/stuart-little/raku/ch-1.raku b/challenge-126/stuart-little/raku/ch-1.raku new file mode 100755 index 0000000000..b219539164 --- /dev/null +++ b/challenge-126/stuart-little/raku/ch-1.raku @@ -0,0 +1,12 @@ +#!/usr/bin/env raku +use v6; + +# run <script> <number> + +sub no1($nr) { + $nr.chars==0 && return 0; + ($nr.substr(0,1) eq '1') && return 9**($nr.chars-1); + return ($nr.substr(0,1).Int-1) * 9**($nr.chars-1) + no1($nr.substr(1)); +} + +say((@*ARGS[0] !~~ m/1/) ?? (no1(@*ARGS[0])) !! (no1(@*ARGS[0])-1)) diff --git a/challenge-126/stuart-little/raku/ch-2.raku b/challenge-126/stuart-little/raku/ch-2.raku new file mode 100755 index 0000000000..0acd479e12 --- /dev/null +++ b/challenge-126/stuart-little/raku/ch-2.raku @@ -0,0 +1,21 @@ +#!/usr/bin/env raku +use v6; + +# run <script> + +sub nbrs(@mat, $i, $j) { + return ((-1..1) X (-1..1)).map({ [$i+$_.[0], $j+$_.[1]] }).grep({ 0 <= $_.[0] < @mat.elems && 0 <= $_.[1] < @mat[0].elems && ($_.[0] != $i || $_.[1] != $j) }).Array +} +my @in = $=finish.lines.map({ $_.split(/\s+/).Array }); + +for ((0..^@in.elems) X (0..^@in[0].elems)) -> ($i, $j) { + print( ((@in[$i][$j] eq 'x') ?? (@in[$i][$j]) !! (nbrs(@in,$i,$j).grep({ @in[$_[0]][$_[1]] eq 'x' }).elems)) ~ " " ); + ($j == @in[0].elems-1) && print("\n"); +} + +=finish +x * * * x * x x x x +* * * * * * * * * x +* * * * x * x * x * +* * * x x * * * * * +x * * * x * * * * x |
