我被要求使用 Prolog 解决一个密码谜题:
GIVE
* ME
------
MONEY
Run Code Online (Sandbox Code Playgroud)
以上是谜题,我无法弄清楚问题出在哪里,结果总是返回 false。另外,我不允许使用 SWI-Prolog 中的任何库。
solve(Z) :-
assign(Z,[0,1,2,3,4,5,6,7,8,9]),
check(Z).
find( VAL , G,I,V,E ) :- VAL is G * 1000 + I * 100 + V * 10 + E.
find2(VALR, M,E ) :- VALR is M * 10 + E.
find3(VALA, M,O,N,E,Y) :- VALA is M * 10000 + O * 1000 + N * 100 + E * 10 + Y.
check(Z) :-
G #>= 1,
M #>= 1,
find( VAL, …Run Code Online (Sandbox Code Playgroud)