2 sinat 34654042 sinat_34654042 于 2016.05.05 17:39 提问

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

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

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

1个回答

o7456
o7456   2016.05.05 19:13
已采纳

用到了两个递归,不过一旦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
o7456 回复sinat_34654042: 恩,实际上除法中有个浮点型,可以不用加long double
一年多之前 回复
sinat_34654042
sinat_34654042 return Cal_e(n-1)+(long double)(1.0/(long double)Fact(n-1)); //这一句中不加long double结果好像也是一样的,加long double 是强制类型转换吗?
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!