java – 计算对数
作者:互联网
我正在尝试编写一个方法,它接受基数k和值n到2位小数,然后计算n的日志基数k,而不使用任何Java的Math.log方法.这是我到目前为止所拥有的:
public static double log(double k, double n) {
double value = 0.0;
for(double i = 1; i > .001; i /= 10) {
while(!(Math.pow(k, value) >= n )) {
value += i;
}
}
return value;
}
当我尝试计算5.0625的日志库4时,问题出现了,它返回2.0,但应该返回1.5.
我不知道为什么这不起作用.任何帮助表示赞赏.
不,这不是功课,它是我试图解决的问题集的一部分.
解决方法:
你加入了我曾经的金额.因此,您很快就会达到大于实际值的值,并且永远不会再次输入while循环.
从价值中减去一次,你会没事的:
for(double i = 1; i > .001; i /= 10) {
while(!(Math.pow(k, value) > n )) {
value += i;
}
value -= i;
}
标签:java,math,logarithm 来源: https://codeday.me/bug/20190716/1483053.html