如何输出e(到20000位)
e就是数学里那个有用的无理数(用来算ln),用数学表达是

#include <iostream>
using namespace std;
int main(void) {
long N, a, b, i, j = 0, k = 0;
cin >> N, N += 5;
long *e = new long[N], *c = new long[N];
while (++j < N)
e[j] = c[j] = 0;
for (*c = i = 1; k < N; i++) {
while (!c[k])
k++;
for (b = 0, j = k - 1; ++j < N; b = a % i)
e[j] += (c[j] = (a = b * 10 + c[j]) / i);
}
for (; --j; e[j] %= 10)
e[j - 1] += e[j] / 10;
for (cout << "2."; ++j < N - 5;)
cout << e[j];
delete[] e, delete[] c;
return 0;
}

浙公网安备 33010602011771号