编写JavaApplication,求出e=1+1/1!+1/2!+1/3!+......+1/n!...的近似值,要求误差小于0.00001
时间: 2023-11-15 20:03:18 浏览: 42
要求求出e=1+1/1!+1/2!+1/3!+......+1/n!的近似值,要求误差小于0.00001。可以使用BigDecimal类来进行高精度计算,具体步骤如下:
1. 定义一个BigDecimal类型的变量sum,初始值为1。
2. 定义一个int类型的变量n,表示要计算的阶乘的最大值。
3. 定义一个BigDecimal类型的变量factorial,初始值为1。
4. 使用for循环计算1到n的阶乘,并将阶乘的倒数加到sum中。
5. 在每次循环中,更新factorial的值为当前循环变量的阶乘。
6. 在每次循环中,使用BigDecimal的add方法将阶乘的倒数加到sum中。
7. 最后,使用BigDecimal的setScale方法设置精度,并输出sum的值。
代码如下:
```
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
BigDecimal sum = new BigDecimal("1");
int n = 20;
BigDecimal factorial = new BigDecimal("1");
for (int i = 1; i <= n; i++) {
factorial = factorial.multiply(new BigDecimal(String.valueOf(i)));
sum = sum.add(BigDecimal.ONE.divide(factorial, 100000, BigDecimal.ROUND_HALF_UP));
}
sum = sum.setScale(5, BigDecimal.ROUND_HALF_UP);
System.out.println("e的近似值为:" + sum);
}
}
```