From a82081c4f6ab2ceea0b8e3217e352ffb3e067406 Mon Sep 17 00:00:00 2001 From: Hatter Jiang Date: Fri, 18 Jul 2025 00:28:34 +0800 Subject: [PATCH] feat: add sqrt10 --- src/main/java/me/hatter/math/Sqrt10.java | 34 ++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/main/java/me/hatter/math/Sqrt10.java diff --git a/src/main/java/me/hatter/math/Sqrt10.java b/src/main/java/me/hatter/math/Sqrt10.java new file mode 100644 index 0000000..8ea86f3 --- /dev/null +++ b/src/main/java/me/hatter/math/Sqrt10.java @@ -0,0 +1,34 @@ +package me.hatter.math; + +import java.math.BigDecimal; +import java.math.RoundingMode; + +public class Sqrt10 { + + public static void main(String[] args) { + System.out.println(sqrt10()); + } + + //requires: Java9+ + //import java.math.BigDecimal; + //import java.math.MathContext; + //import java.math.RoundingMode; + // + //public class SqrtExample { + // public static void main(String[] args) { + // BigDecimal number = new BigDecimal("10"); + // MathContext mc = new MathContext(100, RoundingMode.HALF_UP); + // BigDecimal sqrtResult = number.sqrt(mc); + // System.out.println("sqrt(10) = " + sqrtResult); + // } + //} + public static BigDecimal sqrt10() { + BigDecimal x = BigDecimal.valueOf(1).divide(BigDecimal.valueOf(6), 100, RoundingMode.FLOOR); + + for (int i = 0; i < 100; i++) { + x = BigDecimal.valueOf(1).divide(BigDecimal.valueOf(6).add(x), 100, RoundingMode.FLOOR); + } + + return BigDecimal.valueOf(3).add(x); + } +}