diff options
| -rw-r--r-- | challenge-106/mark-anderson/raku/ch-1.raku | 12 | ||||
| -rw-r--r-- | challenge-106/mark-anderson/raku/ch-2.raku | 18 |
2 files changed, 30 insertions, 0 deletions
diff --git a/challenge-106/mark-anderson/raku/ch-1.raku b/challenge-106/mark-anderson/raku/ch-1.raku new file mode 100644 index 0000000000..b04144a364 --- /dev/null +++ b/challenge-106/mark-anderson/raku/ch-1.raku @@ -0,0 +1,12 @@ +#!/usr/bin/env raku + +use Test; +plan 3; + +is max-gap(2, 9, 3, 5), 4; +is max-gap(1, 3, 8, 2, 0), 5; +is max-gap(5), 0; + +multi max-gap($N) { 0 } + +multi max-gap(*@N) { max @N.sort.rotor(2 => -1).map({ .[1] - .[0] }) } diff --git a/challenge-106/mark-anderson/raku/ch-2.raku b/challenge-106/mark-anderson/raku/ch-2.raku new file mode 100644 index 0000000000..2366e111ad --- /dev/null +++ b/challenge-106/mark-anderson/raku/ch-2.raku @@ -0,0 +1,18 @@ +#!/usr/bin/env raku + +use Test; +plan 4; + +is decimal-string(1, 3), "0.(3)"; +is decimal-string(1, 2), "0.5"; +is decimal-string(5, 66), "0.0(75)"; +is decimal-string(3227, 555), "5.8(144)"; + +sub decimal-string($n, $d) +{ + my ($non-rep, $rep) = ($n/$d).base-repeating; + + return $non-rep unless $rep; + + return sprintf '%s(%s)', $non-rep, $rep; +} |
