在行Result1 is Result + Count
您只需添加对变量结果进行计数并添加 0,1,2,...,但在斐波那契中,您需要添加前面的两个,例如 0,1,(1+0=1),(1+1=2),。 ...
我建议这个实现:
fib(0, 0).
fib(1, 1).
fib(N,Result):-fibonacci(N,0,1,Result).
fibonacci(0,N,_,N).
fibonacci(N, Prev1,Prev2,Result):-
N>0,
New_Prev2 is Prev1+Prev2,
N1 is N-1,
fibonacci(N1,Prev2,New_Prev2,Result).