aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2024-01-15 00:06:24 +0000
committerGitHub <noreply@github.com>2024-01-15 00:06:24 +0000
commit7f2882c03bd4a9a97608660d734e7a05414d6bf9 (patch)
tree18d3202e2d804a52f97249db7e97fcc3982bdf91
parent3a46f6d8b7ab2105f42c31731fcc96d2ad8bd698 (diff)
parent0759bc0bd1f4f050d46a9cde87471f501be11b28 (diff)
downloadperlweeklychallenge-club-7f2882c03bd4a9a97608660d734e7a05414d6bf9.tar.gz
perlweeklychallenge-club-7f2882c03bd4a9a97608660d734e7a05414d6bf9.tar.bz2
perlweeklychallenge-club-7f2882c03bd4a9a97608660d734e7a05414d6bf9.zip
Merge pull request #9400 from adamcrussell/challenge-251
initial commit
-rw-r--r--challenge-251/adam-russell/perl/ch-1.pl22
-rw-r--r--challenge-251/adam-russell/perl/ch-2.pl19
-rw-r--r--challenge-251/adam-russell/prolog/ch-1.p19
3 files changed, 60 insertions, 0 deletions
diff --git a/challenge-251/adam-russell/perl/ch-1.pl b/challenge-251/adam-russell/perl/ch-1.pl
new file mode 100644
index 0000000000..5fa20f1e6f
--- /dev/null
+++ b/challenge-251/adam-russell/perl/ch-1.pl
@@ -0,0 +1,22 @@
+use v5.38;
+
+
+sub concatenation_value{
+ return concatenation_value_r(0, @_);
+}
+
+sub concatenation_value_r{
+ return $_[0] if @_ == 1;
+ my $sum = shift;
+ my $l = shift;
+ my $r = pop;
+ return concatenation_value_r($sum + qq/$l$r/, @_) if $l && $r;
+ return concatenation_value_r($sum + qq/$l/, @_) if $l && !$r;
+}
+
+
+MAIN:{
+ say concatenation_value 6, 12, 25, 1;
+ say concatenation_value 10, 7, 31, 5, 2, 2;
+ say concatenation_value 1, 2, 10;
+}
diff --git a/challenge-251/adam-russell/perl/ch-2.pl b/challenge-251/adam-russell/perl/ch-2.pl
new file mode 100644
index 0000000000..31220c113c
--- /dev/null
+++ b/challenge-251/adam-russell/perl/ch-2.pl
@@ -0,0 +1,19 @@
+use v5.38;
+use Data::Dump q/pp/;
+sub lucky_number{
+ my $matrix = shift;
+ do{
+ my $row = $_;
+ my $x = (sort {$a <=> $b} @$row)[0];
+ my $c = (grep {$row->[$_] == $x} 0 .. @$row - 1)[0];
+ my @c = map {$_->[$c]} @$matrix;
+ return $x if $x == (sort {$b <=> $a} @c)[0];
+ } for @$matrix;
+ return -1;
+}
+
+MAIN:{
+ say lucky_number [[3, 7, 8], [9, 11, 13], [15, 16, 17]];
+ say lucky_number [[1, 10, 4, 2], [9, 3, 8, 7], [15, 16, 17, 12]];
+ say lucky_number [[7, 8], [1, 2]];
+}
diff --git a/challenge-251/adam-russell/prolog/ch-1.p b/challenge-251/adam-russell/prolog/ch-1.p
new file mode 100644
index 0000000000..13d6732be5
--- /dev/null
+++ b/challenge-251/adam-russell/prolog/ch-1.p
@@ -0,0 +1,19 @@
+concatenation_value([], 0).
+concatenation_value([X], X).
+concatenation_value([H|T], Sum):-
+ last(T, Last),
+ number_atom(H, L),
+ number_atom(Last, R),
+ atom_concat(L, R, LR),
+ number_atom(N, LR),
+ append(Rest, [Last], T),
+ concatenation_value(Rest, S),
+ Sum is N + S.
+
+main:-
+ concatenation_value([6, 12, 25, 1], S0),
+ write(S0), nl,
+ concatenation_value([10, 7, 31, 5, 2, 2], S1),
+ write(S1), nl,
+ concatenation_value([1, 2, 10], S2),
+ write(S2), nl.