如何输出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;
}

  

posted @ 2019-09-29 12:49  Corylus  阅读(337)  评论(0编辑  收藏  举报