我正试图让Prolog计算一个倒数。
我想问Prolog这个问题:rec / 2喜欢这样rec(3,结果)。
我尝试转换的公式是
f(n) = 1 + 1/2 + 1/3 ... + 1/n
它应该导致1.833333 ...
我在开始时有rec(0,0).
,如果输入为0,则为0。
如何判断我的子句以避免除以零的异常?
到目前为止,我知道我必须通过递归来解决它。
我试过了:
rec(N, R):-
N > 0,
N1 is N-1,
rec(N1, R1),
我不知道如何在那之后解决问题,因为我尝试的一切都不会给我十进制数字但是正确的解决方案,大多数时候我得到rec(0,0).
的零失败原因定义