本人编写了一段代码,目的是求e(常用对数)的值,e=1+(1/1!)+(1/2!)+……+(1/n!)。要求最后一项的值小于0.0001。
   这是我写的代码,只写关键部分,(fac(n)为求阶乘的函数,已验证没有错误。)
public static void main(String[] args) {
int n=1;
double last=1.0;
double sum=0.0;
last=1/fac(n);
while (last>=0.0001){
sum+=last;
         n++;
last=1/fac(n);
}
System.out.println("e≈"+sum);
}
    这段代码是仿照例程写的,有所改动,只是结果输出不正确,正确的结果应该是e≈2.7182539682539684
    而我这段程序的结果是e≈1.0
    请问我的代码哪里出错了,求指教。
P.S  例程的代码如下,同样只写出关键部分,这段程序在我的电脑上已经正确运行
   public static void main(String[] args) {
int n=1;
final double E1=0.0001;
double sumE=1.0,temp=1.0;
temp=1/fac(n);
while(temp>=E1){
sumE+=temp;
n++;
temp=1.0/fac(n);
}
System.out.println("e="+sumE);
}