diff options
| author | Mohammad S Anwar <Mohammad.Anwar@yahoo.com> | 2020-05-18 09:20:18 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-05-18 09:20:18 +0100 |
| commit | e7e2a8449e0a59ec48deed097bd962e0105a58ea (patch) | |
| tree | 14e65a09493418629af68c7c0ea16c1507e1f062 | |
| parent | 0219c7323748ab95c885274661b68fac4ca14fd6 (diff) | |
| parent | 86dc29940123f535a2e2c8afd0a18684f3b1ddc0 (diff) | |
| download | perlweeklychallenge-club-e7e2a8449e0a59ec48deed097bd962e0105a58ea.tar.gz perlweeklychallenge-club-e7e2a8449e0a59ec48deed097bd962e0105a58ea.tar.bz2 perlweeklychallenge-club-e7e2a8449e0a59ec48deed097bd962e0105a58ea.zip | |
Merge pull request #1730 from Firedrake/rogerbw-challenge-061
Solutions for challenge #61.
| -rwxr-xr-x | challenge-061/roger-bell-west/perl/ch-1.pl | 24 | ||||
| -rwxr-xr-x | challenge-061/roger-bell-west/perl/ch-2.pl | 27 | ||||
| -rwxr-xr-x | challenge-061/roger-bell-west/raku/ch-1.p6 | 20 |
3 files changed, 71 insertions, 0 deletions
diff --git a/challenge-061/roger-bell-west/perl/ch-1.pl b/challenge-061/roger-bell-west/perl/ch-1.pl new file mode 100755 index 0000000000..79664f1b1b --- /dev/null +++ b/challenge-061/roger-bell-west/perl/ch-1.pl @@ -0,0 +1,24 @@ +#! /usr/bin/perl + +use strict; +use warnings; +use integer; + +my @list=@ARGV; +unless (@list) { + @list=(2,5,-1,3); +} + +my ($mxp,$a,$b); + +foreach my $ai (0..$#list) { + foreach my $bi ($ai..$#list) { + my $p=1; + map {$p*=$_} @list[$ai..$bi]; + if (!defined $mxp || $p > $mxp) { + ($mxp,$a,$b)=($p,$ai,$bi); + } + } +} + +print join(' * ',@list[$a..$b]),' = ',$mxp,"\n"; diff --git a/challenge-061/roger-bell-west/perl/ch-2.pl b/challenge-061/roger-bell-west/perl/ch-2.pl new file mode 100755 index 0000000000..5b1053794d --- /dev/null +++ b/challenge-061/roger-bell-west/perl/ch-2.pl @@ -0,0 +1,27 @@ +#! /usr/bin/perl + +use strict; +use warnings; + +use List::Util qw(min); + +my $in=$ARGV[0] || '25525511135'; + +my @buf=([$in]); +while (my $t=shift @buf) { + my @l=@{$t}; + my $r=pop @l; + if ($r eq '' && scalar @l == 4) { + print join('.',@l),"\n"; + } + if (scalar @l >= 4) { + next; + } + foreach my $fl (1..min(3,length($r))) { + my $a=substr($r,0,$fl); + if ($a <= 255 && ($a==0 || $a =~ /^[1-9]/)) { + my $b=substr($r,$fl); + push @buf,[@l,substr($r,0,$fl),$b]; + } + } +} diff --git a/challenge-061/roger-bell-west/raku/ch-1.p6 b/challenge-061/roger-bell-west/raku/ch-1.p6 new file mode 100755 index 0000000000..48a5baeea9 --- /dev/null +++ b/challenge-061/roger-bell-west/raku/ch-1.p6 @@ -0,0 +1,20 @@ +#! /usr/bin/perl6 + +my @list=@*ARGS; +unless (@list) { + @list=(2,5,-1,3); +} + +my ($mxp,$a,$b); + +for (0..@list.end) -> $ai { + for ($ai..@list.end) -> $bi { + my $p=1; + map {$p*=$_}, @list[$ai..$bi]; + if (!$mxp.defined || $p > $mxp) { + ($mxp,$a,$b)=($p,$ai,$bi); + } + } +} + +say join(' * ',@list[$a..$b]),' = ',$mxp; |
