main.java

来自「java的经典例子」· Java 代码 · 共 30 行

JAVA
30
字号
import java.math.*;

class Main {
    public static void main(String[] args) {
        for (int i=0; i<args.length; i++) {
            System.out.println("sqrt("+args[i]+") = " +
                sqrt(BigDecimal.valueOf(Integer.parseInt(args[i]))));
        }
    }

    public static BigDecimal sqrt(BigDecimal n) {
        BigDecimal TWO = BigDecimal.valueOf(2);

        // First approximation.
        BigDecimal x = n.divide(BigDecimal.valueOf(3), 20, 
            BigDecimal.ROUND_DOWN);
        BigDecimal lastX = BigDecimal.valueOf(0);

        for (int i=0; i<50; i++) {
            x = n.add(x.multiply(x)).divide(x.multiply(TWO), 20, 
                BigDecimal.ROUND_DOWN);
            if (x.compareTo(lastX) == 0) {
                break;
            }
            lastX = x;
        }
        return x;
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?