19 lines
456 B
Prolog
19 lines
456 B
Prolog
:- use_module(library(clpfd)).
|
|
|
|
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).
|
|
|
|
triangle([T|Ts]) :- ( Ts = [N|_] -> triangle_(T, N), triangle(Ts) ; true ).
|
|
|
|
triangle_([], _).
|
|
triangle_([T|Ts], [A,B|Rest]) :- T #= A + B, triangle_(Ts, [B|Rest]).
|
|
|
|
% ?- puzzle(_,X,Y,Z).
|
|
% X = 5,
|
|
% Y = 13,
|
|
% Z = 8 ;
|