小红与小丽两人有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).

本文介绍了一个使用Prolog编写的程序,该程序能够列出两个人之间所有可能的苹果分配方式。通过生成从0到N的列表并递归地计算剩余的苹果数量,程序实现了这一目标。在SWI-Prolog环境下进行了验证。
1444

被折叠的 条评论
为什么被折叠?



