说起来也搞笑,我为了这个方法折磨了半天,就是弄不懂这玩意到底是干啥的
结果没想动这玩意居然是用来算平方根的
气死
不过感觉以后可能用得到,记录一下方便后续查看

这里直接po出代码

public static double squareRootMethod(double x){
        double guess = x;
        double perviousGuess;
        do{
            perviousGuess = guess;
            guess = 0.5 * (guess + x / guess);
        } while (perviousGuess != guess);
        return guess;
    }

这个是一个方法,你可以将其添加到任意的代码片段中
方法自我声明两个变量,guess 和 perviousGuess
输入值为需要开方的数字,返回值为开根号后的数字

食用说明:
squareRootMethod(300);
输出结果为 17.32050807568877

BUG发现与解决
你或许会注意到,当输入的数字为0或者为负数的时候,都没办法正常输出我们想要的数字
当输入为0的时候,会是一个无限循环
当输入为负数的时候,会是一个无穷大的负数
所以,需要使用一些if条件语句去判断

改良后的代码为:

public static double squareRootMethod(double x){
        if(x < 0){
            return 0;
        }
        double guess = x;
        double perviousGuess;
        do{
            perviousGuess = guess;
            guess = 0.5 * (guess + x / guess);
        } while (perviousGuess != guess);
        return guess;
    }

食用方法和上面的一样,有所不同的是,当输入的数字小于等于0的时候,输出0

Last modification:February 8, 2023
如果觉得我的文章对你有用,请随意赞赏