以下のコードを使用して、系列表現を使用して e を近似し、できるだけ多くの精度の桁数を取得しようとしましたが、計算する項の数に関係なく、精度の桁数は同じままのようです。すなわち:
2.718281984329223632812500000000000000000000000000
間違っているのは私のアプローチですか?コードは次のとおりです。
1 #include <stdio.h>
2 #include <iostream>
3 #include <math.h>
4 using namespace std;
5
6 float factorial (float a)
7 {
8 if (a > 1)
9 {
10 return (a * factorial (a-1));
11 } else
12 {
13 return 1;
14 }
15 }
16
17 int main()
18 {
19 float sum = 0;
20 int range=100000;
21
22 for (int i=0; i<=range;i++)
23 {
24 sum += pow(-1,i)/factorial(i);
25 }
26 sum = pow(sum,-1);
27 printf("%4.50f\n", sum);
28 }