diff --git a/README.md b/README.md index a7e8368..b5ce663 100644 --- a/README.md +++ b/README.md @@ -7,4 +7,5 @@ | ModularInv | 求乘法逆元【扩展欧几里得法】 | - | | Sqrt10 | 求 $\sqrt{10}$【连分数】 | [resolve-sqrt-10](https://hatter.ink/static/resource/muboard/?id=resolve-sqrt-10&version=latest&full=1) | | WallisProduct | 沃里斯乘积 | [wallis-product](https://hatter.ink/static/resource/muboard/?id=wallis-product&version=latest&full=1) | +| EulerNumber | 欧拉数 | [eulers-number](https://hatter.ink/static/resource/muboard/?id=eulers-number&version=latest&full=1) | diff --git a/src/main/java/me/hatter/math/EulerNumber.java b/src/main/java/me/hatter/math/EulerNumber.java new file mode 100644 index 0000000..1b97984 --- /dev/null +++ b/src/main/java/me/hatter/math/EulerNumber.java @@ -0,0 +1,22 @@ +package me.hatter.math; + +import java.math.BigDecimal; +import java.math.RoundingMode; + +public class EulerNumber { + + public static void main(String[] args) { + // 2.7182818284590452353602874713526624977572470936999595749669676277240766303535475945713821785251664238 + System.out.println(e()); + } + + public static BigDecimal e() { + BigDecimal e = BigDecimal.valueOf(1); + BigDecimal f = BigDecimal.valueOf(1); + for (long i = 1; i < 1000; i++) { + f = f.multiply(BigDecimal.valueOf(i)); + e = e.add(BigDecimal.ONE.divide(f, 100, RoundingMode.FLOOR)); + } + return e; + } +}