1

嘿,我正在准备考试,但我无法弄清楚其中一个练习题。我能得到一些帮助吗?

这就是问题:定义一个名为 power10 的谓词,它接受两个参数。当且仅当 P 是 X 可以被 10 整除的次数时,power10(X,P) 应该为真。换句话说,您正在计算 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.
4

1 回答 1

0

在您的第一个谓词中,您永远不会为P. 试试这个:

power10(X, 0) :-
    X mod 10 =\= 0.
于 2013-04-20T21:13:34.420 回答