0

我正在使用 prolog 制作一个 log base 2 only 计算器我的代码很简单,它是:

logBase2(1,0). 
logBase2(N,R) :-
                N1 is N/2,
                logBase2(N1,R1),
                R is R1 +1.

问题是,当我尝试另一种解决方案而不是给出错误时,它给出了平方数的本地堆栈错误,并且它给出了非平方数的相同错误。有什么建议么 ?非常感激。

4

1 回答 1

0
logBase2(1,0). 
logBase2(N,R) :-
                N>1,
                N1 is N//2,
                logBase2(N1,R1),
                R is R1 +1.

对于所有想要答案的人来说,这是循环前的简单检查。

于 2021-06-09T21:38:42.893 回答