私はJavaを初めて使用します。私のプログラムは、可能な限り効率的ではない可能性がありますが、次のとおりです。
public class Compute {
public static void main(String[] args) {
for(double i = 10000; i <= 100000; i += 10000)
{
System.out.println("The value for the series when i = " + i + " is " + e(i));
}
}
public static double e(double input) {
double e = 0;
for(double i = 0; i <= input; i++)
{
e += 1 / factorial(input);
}
return e;
}
public static double factorial(double input) {
double factorial = 1;
for(int i = 1; i <= input; i++)
{
factorial *= i;
}
return factorial;
}
}
これは、i = 10000、20000、...、および 100000 の値 e を計算すると思います。
ここで、e = 1 + (1/1!) + (2/2!) + ... + (1/i!)
これには約 47 秒かかりますが、うまくいくと思います。
私の問題は、すべての i について、結果が常に 0.0 であることです
。これは、メソッド factorial が呼び出されるたびに、戻り値が大きすぎて保存できず、何らかの問題が発生するためだと思います。
Factorial メソッドによって返された値を格納するにはどうすればよいですか?