package homework1C;
public class Homework1C {
public static void main(String[] args){
double term =2,sum;
int n;
final double difference = 0.0000000001;
double x;
for(sum=0.0,n=0;term > difference;n++){
x = find_n_fact(n);
term=1.0/x;
sum+=term;
n++;
}
System.out.printf("e : %f\n", sum);
System.out.printf("term : %d\n", n);
}
public static int find_n_fact(int n){
int i;
int fact = 2;
for(i = n; i>2;i--){
fact *= i;
}
return fact;
}
}
这就是我被要求做的事情:编写另一个 Java 应用程序来查找并显示 e(自然对数)的近似值。使用以下近似公式,从 n 作为 2 开始,以 1 递增,直到 e 的两个连续值相差小于 0.0000000001,并且不仅显示近似值,还显示在最后一个近似值中使用了多少项 n。公式为: e = 1/0 的近似值!+ 1/1!+ 1/2!+ 1/3!+ ... , 其中 n! 是 n 阶乘
这是我目前对该程序的输出
e : 1.043081
term : 20
我究竟做错了什么 ?答案应该是
e: 2.71828
term: 15
如何解决这个问题?