C语言编程:利用下面公式,求自然对数e的近似值 e=1+1/1!+1/2!+1/3!+.

问题描述:

C语言编程:利用下面公式,求自然对数e的近似值 e=1+1/1!+1/2!+1/3!+.

给你个参考程序,需要更高的精度的话你就自己调整.没有自己编写(比较消耗时间),所以在网上帮你找了个,作了下修改,验证通过.
我尝试调整精度(增大循环次数),造成数据溢出.
你可以尝试解决这个问题,或者找个最大精度好了.
#include
long factorial(long n)
{
if(n == 0 || n == 1)
return 1;
else
return n*factorial(n-1);
}
long power(long x,long y)
{
if(y == 0)
return 1;
else
return x*power(x,y-1);
}
void main()
{
double e;
int i;
for(i = 0,e = 0.0; i e += 1.0*power(1,i)/factorial(i);
printf("%lf",e);
printf("\n");
//getch();
}
}