diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2020-01-20 18:09:12 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-01-20 18:09:12 +0000 |
| commit | d9b08aca77be967c36574376ada06ea8b76e4d63 (patch) | |
| tree | 98a41665dfaf84a5a3930c36e1a2d75445a5a582 | |
| parent | 82131cfdef6a35e90af50b56e6f0f80164a9481d (diff) | |
| parent | f1551e2459c44173a6c16d210ad71ff84a6d1c0a (diff) | |
| download | perlweeklychallenge-club-d9b08aca77be967c36574376ada06ea8b76e4d63.tar.gz perlweeklychallenge-club-d9b08aca77be967c36574376ada06ea8b76e4d63.tar.bz2 perlweeklychallenge-club-d9b08aca77be967c36574376ada06ea8b76e4d63.zip | |
Merge pull request #1153 from Firedrake/rogerbw-challenge-044
Solutions for challenge #44
| -rwxr-xr-x | challenge-044/roger-bell-west/perl5/ch-1.pl | 33 | ||||
| -rwxr-xr-x | challenge-044/roger-bell-west/perl5/ch-2.pl | 19 | ||||
| -rwxr-xr-x | challenge-044/roger-bell-west/perl6/ch-1.p6 | 30 | ||||
| -rwxr-xr-x | challenge-044/roger-bell-west/perl6/ch-2.p6 | 16 |
4 files changed, 98 insertions, 0 deletions
diff --git a/challenge-044/roger-bell-west/perl5/ch-1.pl b/challenge-044/roger-bell-west/perl5/ch-1.pl new file mode 100755 index 0000000000..5919024dea --- /dev/null +++ b/challenge-044/roger-bell-west/perl5/ch-1.pl @@ -0,0 +1,33 @@ +#! /usr/bin/perl + +use strict; +use warnings; + +use integer; + +my @base=(1..9); + +my @sv=('','-','+'); + +my $maxdepth=8; +my @si=(0) x $maxdepth; + +while (1) { + my $str=join('',map {$base[$_].$sv[$si[$_]]} (0..$maxdepth-1)).$base[$maxdepth]; + my $tot=eval($str); + if ($tot == 100) { + print "$str\n"; + } + my $i=0; + while ($i < $maxdepth) { + $si[$i]++; + if ($si[$i] <= $#sv) { + last; + } + $si[$i]=0; + $i++; + } + if ($i >= $maxdepth) { + last; + } +} diff --git a/challenge-044/roger-bell-west/perl5/ch-2.pl b/challenge-044/roger-bell-west/perl5/ch-2.pl new file mode 100755 index 0000000000..0eb09d116e --- /dev/null +++ b/challenge-044/roger-bell-west/perl5/ch-2.pl @@ -0,0 +1,19 @@ +#! /usr/bin/perl + +use strict; +use warnings; + +use integer; + +my @seq=([1,[]]); +my $goal=200; + +while (1) { + my $s=shift @seq; + if ($s->[0] == $goal) { + print join(', ',map {['double','add 1']->[$_]} @{$s->[1]}),"\n"; + last; + } + push @seq,[$s->[0]*2,[@{$s->[1]},0]]; + push @seq,[$s->[0]+1,[@{$s->[1]},1]]; +} diff --git a/challenge-044/roger-bell-west/perl6/ch-1.p6 b/challenge-044/roger-bell-west/perl6/ch-1.p6 new file mode 100755 index 0000000000..863def1274 --- /dev/null +++ b/challenge-044/roger-bell-west/perl6/ch-1.p6 @@ -0,0 +1,30 @@ +#! /usr/bin/perl6 + +use MONKEY-SEE-NO-EVAL; + +my @base=(1..9); + +my @sv=('','-','+'); + +my $maxdepth=8; +my @si=0 xx $maxdepth; + +while (1) { + my $str=join('',map {@base[$_] ~ @sv[@si[$_]]}, (0..^$maxdepth)) ~ @base[$maxdepth]; + my $tot=EVAL($str); + if ($tot == 100) { + print "$str\n"; + } + my $i=0; + while ($i < $maxdepth) { + @si[$i]++; + if (@si[$i] <= @sv.end) { + last; + } + @si[$i]=0; + $i++; + } + if ($i >= $maxdepth) { + last; + } +} diff --git a/challenge-044/roger-bell-west/perl6/ch-2.p6 b/challenge-044/roger-bell-west/perl6/ch-2.p6 new file mode 100755 index 0000000000..e06e296d5a --- /dev/null +++ b/challenge-044/roger-bell-west/perl6/ch-2.p6 @@ -0,0 +1,16 @@ +#! /usr/bin/perl6 + +my $goal=200; + +my @stack; + +for sprintf('%b',$goal).split('',:skip-empty) -> $op { + push @stack,'double'; + if ($op == 1) { + push @stack,'add 1'; + } +} +@stack.shift; +@stack.shift; + +say join(', ',@stack); |
