diff options
| author | Ruben Westerberg <drclaw@mac.com> | 2019-04-02 12:53:38 +1000 |
|---|---|---|
| committer | Ruben Westerberg <drclaw@mac.com> | 2019-04-02 12:54:20 +1000 |
| commit | 89ddd6de0e6560f53327880b3b5c7eac93f8b28b (patch) | |
| tree | 1bd3b728ba1aec33765d941a4c4720a98e116971 | |
| parent | 1d04f6e89c3432691461695813d640f13ed0fcb7 (diff) | |
| download | perlweeklychallenge-club-89ddd6de0e6560f53327880b3b5c7eac93f8b28b.tar.gz perlweeklychallenge-club-89ddd6de0e6560f53327880b3b5c7eac93f8b28b.tar.bz2 perlweeklychallenge-club-89ddd6de0e6560f53327880b3b5c7eac93f8b28b.zip | |
Added solutions to w2 c2
Must be a better perl5 solution out there!
| -rw-r--r-- | challenge-002/ruben-westerberg/README | 2 | ||||
| -rwxr-xr-x | challenge-002/ruben-westerberg/ch-2.p6 | 2 | ||||
| -rwxr-xr-x | challenge-002/ruben-westerberg/ch-2.pl | 26 |
3 files changed, 30 insertions, 0 deletions
diff --git a/challenge-002/ruben-westerberg/README b/challenge-002/ruben-westerberg/README index 89369bf20d..58eaaedd18 100644 --- a/challenge-002/ruben-westerberg/README +++ b/challenge-002/ruben-westerberg/README @@ -1 +1,3 @@ Solution by Ruben Westerberg + +inputs via command line arguments diff --git a/challenge-002/ruben-westerberg/ch-2.p6 b/challenge-002/ruben-westerberg/ch-2.p6 new file mode 100755 index 0000000000..c011ae237c --- /dev/null +++ b/challenge-002/ruben-westerberg/ch-2.p6 @@ -0,0 +1,2 @@ +#!/usr/bin/env perl6 +@*ARGS>>.Num>>.base(35)>>.&{say "Base 35: $_"; $_}>>.parse-base(35)>>.&{say "Base 10: $_"}; diff --git a/challenge-002/ruben-westerberg/ch-2.pl b/challenge-002/ruben-westerberg/ch-2.pl new file mode 100755 index 0000000000..66e78301c8 --- /dev/null +++ b/challenge-002/ruben-westerberg/ch-2.pl @@ -0,0 +1,26 @@ +#!/usr/bin/env perl +my $b=35; +foreach (@ARGV) { + my $power=0; + while (int($_/ $b**++$power) >= 1){}; + $power--; + my @out=(); + while ($power >= 0) { + my $place=$b**$power; + my $val=int($_ / $place); + my $digit= $val >= 10 ? chr(ord('A')+($val-10)) : $val; + push @out, $digit; + $_= $_- $place*$val; + $power--; + } + $base35=join "", @out; + print "Base 35: $base35\n"; + my $place= length $base35; + $_=reverse $base35; + my $sum=0; + while(--$place >=0){ + $val=chop $_; + $sum += $b**$place * (scalar (grep ($_ eq $val, "A".."Y")) ? (ord($val)-55) : $val); + } + print "Base 10: $sum\n"; +} |
