diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2024-03-19 15:07:40 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-03-19 15:07:40 +0000 |
| commit | cd4b509e87ab5496d968b083f0dfff8dc067d659 (patch) | |
| tree | 6a5c75e779707acd90447c7ec11c90699a282a05 | |
| parent | 03aff8a6e185702c98738fcb4597f1a39710e0cf (diff) | |
| parent | f569c97f29246520fcbaa56bf92f76b5de9638ff (diff) | |
| download | perlweeklychallenge-club-cd4b509e87ab5496d968b083f0dfff8dc067d659.tar.gz perlweeklychallenge-club-cd4b509e87ab5496d968b083f0dfff8dc067d659.tar.bz2 perlweeklychallenge-club-cd4b509e87ab5496d968b083f0dfff8dc067d659.zip | |
Merge pull request #9774 from andemark/challenge-261
ch-2.raku do-over
| -rw-r--r-- | challenge-261/mark-anderson/raku/ch-2.raku | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/challenge-261/mark-anderson/raku/ch-2.raku b/challenge-261/mark-anderson/raku/ch-2.raku index 8254214c62..2eb6d5830c 100644 --- a/challenge-261/mark-anderson/raku/ch-2.raku +++ b/challenge-261/mark-anderson/raku/ch-2.raku @@ -5,6 +5,19 @@ is multiply-by-two([5,3,6,1,12], 3), 24; is multiply-by-two([1,2,4,3], 1), 8; is multiply-by-two([5,6,7], 2), 2; -multi multiply-by-two(@i, $s) { samewith(@i.BagHash, $s) } -multi multiply-by-two($b, $s) { return $s } -multi multiply-by-two($b, $s where ?$b{$s}) { $b{(0..$s)}:delete; samewith($b, $s*2) } +say multiply-by-two((1..100000).roll(100000), 5); + +sub multiply-by-two(@a, $s) +{ + my $seq := $s, $s*2, $s*4, $s*8...@a.max; + my @r = (@a (&) $seq.cache).keys.sort; + + my @i = gather for @r Z== $seq + { + last if .not; + take $++ + } + + return $s unless @i; + return @r[@i.tail] * 2 +} |
