这是我编写的代码:
/* fib(X,Y) means xth term in fibonacci series is Y. */
fib(1,0).
fib(2,1).
fib(X,Y):-X1 is X-1,fib(X1,Y1),X2 is X-2,fib(X2,Y2),Y=Y1+Y2.
?-fib(6,X).
X = 1+0+1+(1+0)+(1+0+1) .
为什么我要得到一个求和序列的结果?我应该进行哪些更正?
您应使用+号进行求和,当其应为“ is”时。在序言中,正确的代码将是:
fib(1,0).
fib(2,1).
fib(X,Y):-X1 is X-1,fib(X1,Y1),X2 is X-2,fib(X2,Y2),Y is Y1+Y2.
谢谢。