编写一个Prolog程序来解决以下算术难题


  PYP
  CQB
 CBCW
-----
WXYPB

其中每个字母代表 0-9 之间的唯一数字,行下方的值表示关于它的值的总和。

查看非常相关的问题 Prolog 中更快地实现口头算术。

根据我之前的回答,让我们使用 clpfd 求解您的特定方程!

?- Eq = ([P,Y,P] + [C,Q,B] + [C,B,C,W] #= [W,X,Y,P,B]),
   crypt_arith_(Eq,Zs),
   labeling([],Zs).
Eq = ([9,3,9]+[8,7,5]+[8,5,8,1]#=[1,0,3,9,5]),
Zs = [9,3,8,7,5,1,0],
P  = 9,
Y  = 3,
C  = 8,
Q  = 7,
B  = 5,
W  = 1,
X  = 0 ;
false.

最新更新