我必须在prolog中做一些谓词。我的任务是在itsert中创建这个三角形:
triangle(3):-
这应该是这样的:
答案 0 :(得分:1)
下面:
triangle(0).
triangle(N):-
N0 is N-1, triangle(N0), writeHalves(N).
writeHalves(N):-
writeL(1, N), Ns is N-1, writeR(Ns, Ns).
writeR(0, N):- write('\n').
writeR(N, N):-
write(N), N0 is N-1, writeR(N0, N0).
writeL(X, N):-
write(X), X0 is X+1, X\=N, writeL(X0, N).
writeL(N, N).
...虽然,我会留出空间给你,因为这闻起来
喜欢做作业;)
一个提示:做一个三角形/ 2必须被证明调用三角形/ 1,它使用累加器来计算所需的空格数,作为谓词的另一个项。即triangle(N):- triangle(N, Accum)
其中Accum
等于0
并递增。