diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2024-01-15 00:06:24 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-01-15 00:06:24 +0000 |
| commit | 7f2882c03bd4a9a97608660d734e7a05414d6bf9 (patch) | |
| tree | 18d3202e2d804a52f97249db7e97fcc3982bdf91 | |
| parent | 3a46f6d8b7ab2105f42c31731fcc96d2ad8bd698 (diff) | |
| parent | 0759bc0bd1f4f050d46a9cde87471f501be11b28 (diff) | |
| download | perlweeklychallenge-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.pl | 22 | ||||
| -rw-r--r-- | challenge-251/adam-russell/perl/ch-2.pl | 19 | ||||
| -rw-r--r-- | challenge-251/adam-russell/prolog/ch-1.p | 19 |
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. |
