C++用递归函数计算自然数e的值

C++用递归函数计算自然数e的值

问题描述:

如何编写一个递归函数近似计算自然数e,根据公式e=1+1/1!+1/2!+1/3!+1/4!+......计算e的值.(一定要用递归的方法!!)

e的表达式是:
n
e= ∑1/k!
k=o

用到了两个递归,不过一旦n的值过大,阶乘的结果会越界!

LONG64 Fact(int n)
{
    if (n==1)
    {
        return 1;
    }
    return Fact(n-1)*n;
}

long double Cal_e(int n)
{
    if (n==1)
    {
        return 1.0;
    }

    return Cal_e(n-1)+(long double)(1.0/(long double)Fact(n-1));
}