diff options
| author | Mark Anderson <mark@frontrangerunner.com> | 2020-05-17 09:15:38 -0600 |
|---|---|---|
| committer | Mark Anderson <mark@frontrangerunner.com> | 2020-05-17 09:15:38 -0600 |
| commit | 072d52105e296d33189d80872af5656ba06edecf (patch) | |
| tree | a2a8fbc605a460a249c820ccdfde749adf8e969a /challenge-060 | |
| parent | 46715341a8faf2768b6d172b0400690281f693de (diff) | |
| download | perlweeklychallenge-club-072d52105e296d33189d80872af5656ba06edecf.tar.gz perlweeklychallenge-club-072d52105e296d33189d80872af5656ba06edecf.tar.bz2 perlweeklychallenge-club-072d52105e296d33189d80872af5656ba06edecf.zip | |
final
Diffstat (limited to 'challenge-060')
| -rw-r--r-- | challenge-060/mark-anderson/raku/ch-1.raku | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/challenge-060/mark-anderson/raku/ch-1.raku b/challenge-060/mark-anderson/raku/ch-1.raku index c8d3b23d61..0bc777c96d 100644 --- a/challenge-060/mark-anderson/raku/ch-1.raku +++ b/challenge-060/mark-anderson/raku/ch-1.raku @@ -8,7 +8,7 @@ sub from-excel(Str $str) { my $exp = @letters.keys.max; for @letters { - $num += ($_.ord - 64) * (26 ** $exp--); + $num += (.ord - 64) * (26 ** $exp--); } $num; @@ -16,28 +16,26 @@ sub from-excel(Str $str) { sub to-excel(UInt $num is copy) { my $string; - my $quotient; my $remainder; my @letters = ("A" .. "Z"); while $num > 26 { - $quotient = ($num / 26).Int; - $remainder = $num % 26; + $remainder = $num mod 26; + $num div= 26; if $remainder == 0 { - $quotient--; + $num--; $remainder = 26; } $string ~= @letters[$remainder - 1]; - $num = $quotient; } $string ~= @letters[$num - 1]; $string.flip; } -multi sub MAIN (Str $str where $str ~~ /^<[A..Z]>+$/) { +multi sub MAIN (Str $str where $str ~~ /^ <[A..Z]>+ $/) { say from-excel($str); } |
