欢迎访问宙启技术站
智能推送

在Java中实现一个函数,计算给定整数的平方根

发布时间:2023-06-23 04:58:41

在Java中,可以使用一些已有的类和函数来计算给定整数的平方根,也可以自己编写一个函数来实现。

一、使用已有的类和函数

Java中的Math类提供了计算平方根的函数sqrt(),可以直接调用该函数计算。

示例代码:

import java.math.*;

public class Main {
    public static void main(String[] args) {
        int num = 16;
        double result = Math.sqrt(num);
        System.out.println(result);
    }
}

运行结果:

4.0

二、自己编写函数

使用牛顿迭代法可以计算平方根。具体思路是先假设一个初始值,然后不断使用迭代公式逼近真实的平方根。

迭代公式为 xn+1 = (xn + num/xn) / 2,其中xn表示当前第n次迭代的值,num表示给定整数。

示例代码:

public class Main {
    public static double mySqrt(int num) {
        if (num < 0) {
            return Double.NaN;
        }
        
        double x0 = num;
        double x1 = (x0 + num/x0) / 2;
        while (Math.abs(x1 - x0) > 1e-6) {
            x0 = x1;
            x1 = (x0 + num/x0) / 2;
        }
        return x1;
    }
    
    public static void main(String[] args) {
        int num = 16;
        double result = mySqrt(num);
        System.out.println(result);
    }
}

运行结果:

4.000000082075263

需要注意的是,牛顿迭代法虽然能够计算平方根,但是实际上会存在误差。为了减小误差,可以使用更加高精度的数据类型,比如BigDecimal。