我一直在尝试使用系列表示来近似 e,以使用下面的代码获得尽可能多的精度数字,但无论我计算多少项,精度数字的数量似乎保持不变。IE:
2.71828198432922363281250000000000000000000000000000
是我的方法不对吗?这是代码:
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 }