编程语言
首页 > 编程语言> > java – 计算对数

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