feat: add leibniz formula

This commit is contained in:
2025-07-18 21:52:46 +08:00
parent 056e2f1fdb
commit 947362f55f
2 changed files with 28 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
package me.hatter.math;
import java.math.BigDecimal;
import java.math.RoundingMode;
public class LeibnizFormula {
public static void main(String[] args) {
// 3.1415925535897932384628933832795028810721693993752011334749445868976601562867023677686597593566430148
System.out.println(pi());
}
public static BigDecimal pi() {
BigDecimal p = BigDecimal.ZERO;
for (long i = 0; i < 10000000; i++) {
BigDecimal v = BigDecimal.ONE.divide(BigDecimal.valueOf(i * 2 + 1), 100, RoundingMode.FLOOR);
if (i % 2 == 0) {
p = p.add(v);
} else {
p = p.subtract(v);
}
}
return p.multiply(BigDecimal.valueOf(4)).divide(BigDecimal.ONE, 100, RoundingMode.FLOOR);
}
}