两人分苹果的不同分配方法, Prolog实现

来源:互联网 发布:网络电视能看电视频道 编辑:程序博客网 时间:2024/05/16 14:51

小红与小丽两人有N个苹果, 编写一个Prolog程序, 列出所有可能的分配方式.

 

思路,

1). 我们可以先可以生成一个从0至N的一个列表

2). 递归遍历上面的列表, 用N去减列表元素

3). 完结

 

以下程序在SWI-Prolog通过

%分苹果

genlist(X, Y, [X|L]):-
    X < Y,
    X1 is X + 1,
    genlist(X1, Y, L).


genlist(X, X, [X]).


calc(X, [Y|L]):-X >= Y, Z is X - Y, write([X, Y, Z]), calc(X, L).


solver(X):-genlist(0, X, L), calc(X, L).

原创粉丝点击