Prolog实践,需要弄清楚为什么我会得到错误

时间:2013-04-20 21:00:35

标签: prolog

嘿我正在读考试,我无法弄清楚其中一个练习题。我可以帮忙吗。

这是一个问题:定义一个名为power10的谓词,它带有两个参数。如果,power10(X,P)应为真 并且只有当P是X可以被10均分的次数时。换句话说,你正在计算 在X的末尾有多少个零。(但是如果你知道如何将一个整数转换成一个字符串。) Prolog你可能不会用它来找到你的答案!)你可能认为X必然是正面的 整数。 P可以是绑定的或不绑定的。

这是我到目前为止,我得到错误,我不知道如何让它输出我的P值。

power10(X,P):-
    X mod 10 =\= 0.

power10(X,P):-
    X mod 10 =:= 0,
    Remainder is X//10,
    power10(Remainder,Counter),
    P is Counter+1.

1 个答案:

答案 0 :(得分:0)

在第一个谓词中,您永远不会为P分配值。试试这个:

power10(X, 0) :-
    X mod 10 =\= 0.