fooA(1,1).
fooA(N,X) :-
M is N-1,
fooA(M,Y),
X is 3*Y+1.
如果我运行fooA(3,X)
,那么X is 13
为什么fooA(5,X)
会导致X is 10
??
代码应符合以下规则:
fooA(1,1)
是事实- 醇>
如果
M is N-1
和fooA(M,Y)
以及X is 3*Y+1
则fooA(N,X)
为true
所以fooA(5,X)
解决方案是:
25
但事实并非如此,我的程序会生成10
。
有人可以解释程序程序并指出我的错误。