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));
}