aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2020-05-18 09:20:18 +0100
committerGitHub <noreply@github.com>2020-05-18 09:20:18 +0100
commite7e2a8449e0a59ec48deed097bd962e0105a58ea (patch)
tree14e65a09493418629af68c7c0ea16c1507e1f062
parent0219c7323748ab95c885274661b68fac4ca14fd6 (diff)
parent86dc29940123f535a2e2c8afd0a18684f3b1ddc0 (diff)
downloadperlweeklychallenge-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-xchallenge-061/roger-bell-west/perl/ch-1.pl24
-rwxr-xr-xchallenge-061/roger-bell-west/perl/ch-2.pl27
-rwxr-xr-xchallenge-061/roger-bell-west/raku/ch-1.p620
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;