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

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

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

1个回答

用到了两个递归,不过一旦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));
}

o7456
孟子郢 回复sinat_34654042: 恩,实际上除法中有个浮点型,可以不用加long double
4 年多之前 回复
sinat_34654042
是小狐狸啊 return Cal_e(n-1)+(long double)(1.0/(long double)Fact(n-1)); //这一句中不加long double结果好像也是一样的,加long double 是强制类型转换吗?
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问