Pascal's triangle/Puzzle: Difference between revisions
Content added Content deleted
No edit summary |
(→{{header|Prolog}}: shorter version that can also be more easily extended with additional triangle lines if required) |
||
Line 799: | Line 799: | ||
<lang prolog>:- use_module(library(clpfd)). |
<lang prolog>:- use_module(library(clpfd)). |
||
puzzle( |
puzzle(Ts, X, Y, Z) :- |
||
Ts = [ [151], |
|||
[ |
[_, _], |
||
[ |
[40, _, _], |
||
[_, _, _, _], |
|||
[X, 11, Y, 4, Z]], |
|||
Y #= X + Z, triangle(Ts), append(Ts, Vs), Vs ins 0..sup, label(Vs). |
|||
U1 #= 40 + U3, U2 #= U3 + U4, |
|||
U3 #= U6 + U7, U4 #= U7 + U8, |
|||
triangle([T|Ts]) :- ( Ts = [N|_] -> triangle_(T, N), triangle(Ts) ; true ). |
|||
U5 #= X + 11, U6 #= 11 + Y, |
|||
U7 #= Y + 4, U8 #= 4 + Z, |
|||
triangle_([], _). |
|||
Y #= X + Z, |
|||
triangle_([T|Ts], [A,B|Rest]) :- T #= A + B, triangle_(Ts, [B|Rest]). |
|||
Vars = [U1,U2,U3,U4,U5,U6,U7,U8,X,Y,Z], |
|||
Vars ins 0..sup, labeling([],Vars). |
|||
% ?- puzzle(_,X,Y,Z). |
% ?- puzzle(_,X,Y,Z). |
||
Line 817: | Line 816: | ||
% Y = 13, |
% Y = 13, |
||
% Z = 8 ;</lang> |
% Z = 8 ;</lang> |
||
=={{header|PureBasic}}== |
=={{header|PureBasic}}== |
||
Brute force solution. |
Brute force solution. |