diff options
| author | Adam Russell <ac.russell@live.com> | 2021-02-21 13:57:08 -0500 |
|---|---|---|
| committer | Adam Russell <ac.russell@live.com> | 2021-02-21 13:57:08 -0500 |
| commit | 07312c02c584319c00292a1659d1a28562e01024 (patch) | |
| tree | 1aa3a52aae2c1eaf9ca78bf254185ef11ea49926 | |
| parent | cca2b3ff364d33d2f1986b3168f410b889d6d723 (diff) | |
| download | perlweeklychallenge-club-07312c02c584319c00292a1659d1a28562e01024.tar.gz perlweeklychallenge-club-07312c02c584319c00292a1659d1a28562e01024.tar.bz2 perlweeklychallenge-club-07312c02c584319c00292a1659d1a28562e01024.zip | |
Prolog solution for part 2.
| -rw-r--r-- | challenge-100/adam-russell/ch-1.dat | 1 | ||||
| -rw-r--r-- | challenge-100/adam-russell/prolog/ch-2.p | 30 |
2 files changed, 30 insertions, 1 deletions
diff --git a/challenge-100/adam-russell/ch-1.dat b/challenge-100/adam-russell/ch-1.dat deleted file mode 100644 index a32a4347a4..0000000000 --- a/challenge-100/adam-russell/ch-1.dat +++ /dev/null @@ -1 +0,0 @@ -1234567890 diff --git a/challenge-100/adam-russell/prolog/ch-2.p b/challenge-100/adam-russell/prolog/ch-2.p new file mode 100644 index 0000000000..f3f9a230b0 --- /dev/null +++ b/challenge-100/adam-russell/prolog/ch-2.p @@ -0,0 +1,30 @@ +:-initialization(main). + +minimum_sum(Triangle, Sum):- + minimum_sum(Triangle, 1, 0, Sum). +minimum_sum([H|[]], Index, PartialSum, Sum):- + nth(Index, H, N), + Sum is PartialSum + N. +minimum_sum([H0, H1|T], Index, PartialSum, Sum):- + nth(Index, H0, N0), + PartialSum0 is PartialSum + N0, + I0 is Index + 1, + nth(I0, H1, N1), + nth(Index, H1, N2), + N1 > N2, + minimum_sum([H1|T], Index, PartialSum0, Sum). +minimum_sum([H0, H1|T], Index, PartialSum, Sum):- + nth(Index, H0, N0), + PartialSum0 is PartialSum + N0, + I0 is Index + 1, + nth(I0, H1, N1), + nth(Index, H1, N2), + N1 =< N2, + minimum_sum([H1|T], I0, PartialSum0, Sum). + +main:- + minimum_sum([[1], [2, 4], [6, 4, 9], [5, 1, 7, 2]], Sum0), + write(Sum0), nl, + minimum_sum([[3], [3, 1], [5, 2, 3], [4, 3, 1, 3]], Sum1), + write(Sum1), nl, + halt. |
