package rebelsky.sqrt; import java.io.PrintWriter; import java.math.BigDecimal; import java.math.MathContext; public class MyMath3 { public static BigDecimal sqrt(BigDecimal n, BigDecimal epsilon) throws Exception { BigDecimal a = BigDecimal.ONE; BigDecimal two = new BigDecimal("2"); MathContext prec = new MathContext(8); while (a.subtract(n.divide(a, prec)).abs().compareTo(epsilon) > 0) { a = a.add(n.divide(a, prec)).divide(two); } // while return a; } // sqrt public static BigDecimal sqrt(BigDecimal n, BigDecimal epsilon, PrintWriter pr) throws Exception { BigDecimal a = BigDecimal.ONE; BigDecimal two = new BigDecimal("2"); MathContext prec = new MathContext(8); while (a.subtract(n.divide(a, prec)).abs().compareTo(epsilon) > 0) { a = a.add(n.divide(a, prec)).divide(two); pr.println("Approximation: " + a); } // while return a; } // sqrt } // MyMath3