【发布时间】:2016-01-24 20:19:02
【问题描述】:
给定一个数字 x。您需要计算 e^x 的泰勒级数之和。
e^x = 1 + x + x^2/2! + x^3/3! + ...
计算总和,直到一般数字小于或等于 10^(-9)。
下面是我的解决方案,但 x
int x,i,n;
long long fact; //fact needs to be double
double sum=0,k=1;
scanf("%d",&x);
i=0; sum=0; k=1;
while (fabs(k)>=1.0E-9) {
fact=1;
for (int j=1;j<=i;++j)
fact*=j;
k=pow(x,i)/fact;
sum+=k;
++i;
}
printf("%lf\n",sum);
【问题讨论】:
-
那些变量是什么类型...如果你没有给我们足够的编译,你还没有给我们足够的调试
-
对不起,我刚刚添加了。
-
好的,谢谢。我忘记了。但是结果又错了。例如,如果 x=-2 输出为 0.33333,则需要为 0.13533,对于 x=-4 sum=0.192240,则需要为 0.018316 等...
-
你在使用命名空间标准吗?您是否包含 cmath 或 math.h?如果您显式转换数据类型也会很好
-
晶圆厂,浮点腹肌,我的错。
标签: c taylor-series