1

ねえ、私は試験のために勉強していますが、練習問題の 1 つを理解できません。助けてください。

これが問題です: 2 つのパラメーターを取る power10 という述語を定義します。power10(X,P) は、P が X を 10 で割り切れる回数である場合にのみ true になります。つまり、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 に答える