この種の式を使用して e^x を計算することになっています。
e^x = 1 + (x ^ 1/1!) + (x ^ 2/2!) ......
私はこれまでにこのコードを持っています:
while (result >= 1.0E-20 )
{
power = power * input;
factorial = factorial * counter;
result = power / factorial;
eValue += result;
counter++;
iterations++;
}
私の問題は、factorial が long long 型であるため、実際には 20 を超える数を格納できないことです! そのため、プログラムがそのポイントに到達すると、おかしな数字が出力されます..
正しい解は最大で 709 の X 値を持つことができるため、e^709 は次のように出力する必要があります: 8.21840746155e+307
プログラムは C++ で書かれています。