Riddle

Description

Program solves riddle showed in riddle1.png.

Pod każdą z liter należy przypisać cyfre, tak aby równanie było prawdziwe.

Source: Wiedza i Życie nr 8/200

Download

Program source code: riddle.pl

Listing

 
perm([],[]).
 
 
perm([H|T],X) :-
 
        perm(T,Y),
 
        append(X1,X2,Y),
 
        append(X1,[H|X2],X).
 
 
wartosc([],0).
 
wartosc([N],N).
 
wartosc([H1,H2|T],N) :-
 
        H3 is 10*H1+H2,
 
        wartosc([H3|T],N).
 
 
sumuj([],X,X).
 
sumuj([H|T],X,Y) :-
 
        wartosc(H,N),
 
        X1 is X+N,
 
        sumuj(T,X1,Y).
 
sumuj(X,Y) :-
 
        sumuj(X,0,Y).
 
 
main([A,C,E,I,L,N,S,T,W,Z]) :-
 
        perm([C,E,I,S,W],[1,3,5,7,9]),
 
        perm([A,L,N,T,Z],[0,2,4,6,8]),
 
        sumuj([   [C,Z,A,S],
 
                    [N,I,E],
 
                  [L,A,T,A],
 
                [W,C,A,L,E],
 
                    [A,L,E],
 
                  [L,E,C,I]],X),
 
 
        wartosc([S,T,A,L,E], X).

Comments

pl/prolog/pllib/riddle.txt · ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0