Prolog 算术语法
问题描述:
如何将a
定义为整数/浮点数?
How to define a
as a integer/float number ?
我想找到 a+b+c+d=10
的结果,其中 a,b,c,d
是整数且 >=0
.
I want to find the results of a+b+c+d=10
where a,b,c,d
is integer and >=0
.
答
这是一个简单、现代、纯 Prolog、非 CLP 库的解决方案:
Here is a simple, modern, pure Prolog, non-CLP-library solution:
range(X):-
member(X,[0,1,2,3,4,5,6,7,8,9,10]).
ten(A,B,C,D):-
range(A),
range(B),
range(C),
range(D),
10 =:= A + B + C + D.