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;
}
}
これが私に求められていたことです。e(自然対数)の近似値を見つけて表示する別のJavaアプリケーションプログラムを作成します。nを2として開始し、eの2つの連続する値の差が0.0000000001未満になるまで、1ずつ増加する次の近似式を使用して、近似だけでなく、最後の近似で使用されたnの項の数を表示します。式は次のとおりです。e=1/0の近似!+ 1/1!+ 1/2!+ 1/3!+ ...、ここでn!n階乗です
これは、このプログラムの現在の出力です
e : 1.043081
term : 20
私は何を間違っているのですか?答えは
e: 2.71828
term: 15
これを解決する方法は?