Java 如何计算1000次迭代中的欧拉数?

Java 如何计算1000次迭代中的欧拉数?,java,math,eulers-number,Java,Math,Eulers Number,是否可以用一种方法计算1000次迭代中的欧拉数,并且首先需要计算阶乘 这是我的密码: import java.math.BigDecimal; public class EulerNumber { public static void main(String[] args) { for (int i = 1; i < 1000; i++) { } System.out.println("e = " + e); }

是否可以用一种方法计算1000次迭代中的欧拉数,并且首先需要计算阶乘

这是我的密码:

import java.math.BigDecimal;

public class EulerNumber {

    public static void main(String[] args) {
        for (int i = 1; i < 1000; i++) { 
        }
        System.out.println("e = " + e);
    }

    private static double Euler() {
        return 0;
    }
}
import java.math.BigDecimal;
公共类EulerNumber{
公共静态void main(字符串[]args){
对于(inti=1;i<1000;i++){
}
System.out.println(“e=“+e”);
}
私有静态双Euler(){
返回0;
}
}

是的,可以计算超过2300个正确数字的近似值,部分和为1000项。误差小于2/1000!(震级为1/300^1000)


不,不需要计算阶乘,而且在任何情况下,都应该避免显式阶乘函数,只需从上一个项更新下一个项,或者从上一个项开始使用Horner-like格式。

这很简单,如果我理解正确,您需要在1000次迭代中计算euler数,没有计算1000次,所以for循环应该移到Euler函数中

public class EulerNumber {

    public static void main(String[] args) {
        System.out.println("e = " + Euler());
    }

    private static double Euler() {
        double e=1;
        double f=1;
        for ( int i=1; i <= 1000; i++) {
            f = f * (1.0 / i);
            if ( f == 0 ) break;
            e +=  f;
        }
        return e;
    }
}
公共类EulerNumber{
公共静态void main(字符串[]args){
System.out.println(“e=“+Euler());
}
私有静态双Euler(){
双e=1;
双f=1;

对于(int i=1;我请从代码中删除所有多余的空行,并确保其缩进是一致的!此外,您的问题很容易回答:是的,是的。我认为这不是您想要的答案–因此请让您的问题更精确!”