首页 > 解决方案 > 日志基础 2 序言

问题描述

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

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

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

标签: loggingprolog

解决方案


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

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


推荐阅读