diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-04-03 20:36:05 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2019-04-03 20:36:05 +0100 |
| commit | d0aa5b1bd184aa478492c1bf6ddecef60651cbd0 (patch) | |
| tree | 021ef421eb0bd39edeb028554f7ed33917731800 /challenge-002 | |
| parent | 75fea8807c48d41773400f695cf9dfa39910769f (diff) | |
| download | perlweeklychallenge-club-d0aa5b1bd184aa478492c1bf6ddecef60651cbd0.tar.gz perlweeklychallenge-club-d0aa5b1bd184aa478492c1bf6ddecef60651cbd0.tar.bz2 perlweeklychallenge-club-d0aa5b1bd184aa478492c1bf6ddecef60651cbd0.zip | |
- Added solutions by "Nick Logan".
Diffstat (limited to 'challenge-002')
| -rw-r--r-- | challenge-002/nick-logan/perl5/ch-1.pl | 1 | ||||
| -rw-r--r-- | challenge-002/nick-logan/perl5/ch-2.pl | 9 | ||||
| -rw-r--r-- | challenge-002/nick-logan/perl5/to-base35.pl | 11 | ||||
| -rw-r--r-- | challenge-002/nick-logan/perl6/ch-1.p6 | 1 | ||||
| -rw-r--r-- | challenge-002/nick-logan/perl6/ch-2.p6 | 9 | ||||
| -rw-r--r-- | challenge-002/nick-logan/perl6/to-base35.p6 | 11 |
6 files changed, 42 insertions, 0 deletions
diff --git a/challenge-002/nick-logan/perl5/ch-1.pl b/challenge-002/nick-logan/perl5/ch-1.pl new file mode 100644 index 0000000000..f7787b8a04 --- /dev/null +++ b/challenge-002/nick-logan/perl5/ch-1.pl @@ -0,0 +1 @@ +my @ARGV = do { sub eval($_) { &EVAL($_) }; eval( ("0" and q|@*ARGS| or q|@ARGV|) ) }; print("$_\n") for map &{ sub ($_) { /^0(0|1|2|3|4|5|6|7|8|9)+/ and (0+$_) or $_ } }.(), @ARGV; diff --git a/challenge-002/nick-logan/perl5/ch-2.pl b/challenge-002/nick-logan/perl5/ch-2.pl new file mode 100644 index 0000000000..f6d6226cda --- /dev/null +++ b/challenge-002/nick-logan/perl5/ch-2.pl @@ -0,0 +1,9 @@ +my @ARGV = do { sub eval { chomp &EVAL(@_) }; eval( ("0" and q|@*ARGS| or q|@ARGV|) ) }; +my ($state, $result, $dict, $base35) = (1, "", {}, @ARGV[0]); +$dict{$_} = $_ for "1".."9"; +$dict{$_} = ord($_) - 55 for "A".."Y"; +for (reverse grep &{ sub ($_) { $_ ne "" } }.(), split("", $base35)) { + $result += $state * $dict{$_}; + $state *= 35; +}; +print("$result\n"); diff --git a/challenge-002/nick-logan/perl5/to-base35.pl b/challenge-002/nick-logan/perl5/to-base35.pl new file mode 100644 index 0000000000..683acda914 --- /dev/null +++ b/challenge-002/nick-logan/perl5/to-base35.pl @@ -0,0 +1,11 @@ +# bin/to-base35 +sub to_int($_) { my @i = split(/"."/, $_[0]); @i[0] }; +my @ARGV = do { sub eval { chomp &EVAL(@_) }; eval( ("0" and q|@*ARGS| or q|@ARGV|) ) }; +my ($result, $dict, $base10) = ("", {}, @ARGV[0]); +$dict{$_} = $_ for "1".."9"; +$dict{ord($_) - 55} = $_ for "A".."Y"; +while ($base10 > 0) { + $result = join("", $dict{to_int($base10 % 35)}, $result); + $base10 = to_int($base10 / 35); +} +print("$result\n"); diff --git a/challenge-002/nick-logan/perl6/ch-1.p6 b/challenge-002/nick-logan/perl6/ch-1.p6 new file mode 100644 index 0000000000..f7787b8a04 --- /dev/null +++ b/challenge-002/nick-logan/perl6/ch-1.p6 @@ -0,0 +1 @@ +my @ARGV = do { sub eval($_) { &EVAL($_) }; eval( ("0" and q|@*ARGS| or q|@ARGV|) ) }; print("$_\n") for map &{ sub ($_) { /^0(0|1|2|3|4|5|6|7|8|9)+/ and (0+$_) or $_ } }.(), @ARGV; diff --git a/challenge-002/nick-logan/perl6/ch-2.p6 b/challenge-002/nick-logan/perl6/ch-2.p6 new file mode 100644 index 0000000000..f6d6226cda --- /dev/null +++ b/challenge-002/nick-logan/perl6/ch-2.p6 @@ -0,0 +1,9 @@ +my @ARGV = do { sub eval { chomp &EVAL(@_) }; eval( ("0" and q|@*ARGS| or q|@ARGV|) ) }; +my ($state, $result, $dict, $base35) = (1, "", {}, @ARGV[0]); +$dict{$_} = $_ for "1".."9"; +$dict{$_} = ord($_) - 55 for "A".."Y"; +for (reverse grep &{ sub ($_) { $_ ne "" } }.(), split("", $base35)) { + $result += $state * $dict{$_}; + $state *= 35; +}; +print("$result\n"); diff --git a/challenge-002/nick-logan/perl6/to-base35.p6 b/challenge-002/nick-logan/perl6/to-base35.p6 new file mode 100644 index 0000000000..683acda914 --- /dev/null +++ b/challenge-002/nick-logan/perl6/to-base35.p6 @@ -0,0 +1,11 @@ +# bin/to-base35 +sub to_int($_) { my @i = split(/"."/, $_[0]); @i[0] }; +my @ARGV = do { sub eval { chomp &EVAL(@_) }; eval( ("0" and q|@*ARGS| or q|@ARGV|) ) }; +my ($result, $dict, $base10) = ("", {}, @ARGV[0]); +$dict{$_} = $_ for "1".."9"; +$dict{ord($_) - 55} = $_ for "A".."Y"; +while ($base10 > 0) { + $result = join("", $dict{to_int($base10 % 35)}, $result); + $base10 = to_int($base10 / 35); +} +print("$result\n"); |
