求幂级数展开的部分和(C语言)

习题4-2 求幂级数展开的部分和 (20 分)
 

已知函数ex可以展开为幂级数1+x+x2/2!+x3/3!++xk/k!+⋯。现给定一个实数x,要求利用此幂级数部分和求ex的近似值,求和一直继续到最后一项的绝对值小于0.00001。

输入格式:

输入在一行中给出一个实数x[0,5]。

输出格式:

在一行中输出满足条件的幂级数部分和,保留小数点后四位。

输入样例:

1.2
 

输出样例:

3.3201

分析:该题理解并不难,但我在做题过程中因为定义了一个:s = pow(x, i) * 1.0 / m,并在循环条件中用s与0.0001比较,而出错了,换成pow(x, i) * 1.0 / m比较则结果正确。

C语言代码如下:

 1 #include <stdio.h>
 2 #include <math.h>
 3 int main(){
 4     double x, i, m = 1, sum = 1;
 5     scanf("%lf", &x);
 6     for(i = 1; pow(x, i) * 1.0 / m > 0.00001; i++){
 7         m *= i;
 8         sum += pow(x, i) * 1.0 / m;
 9     }
10     printf("%.4f", sum);
11     return 0;
12 }

 

 
posted @ 2022-03-14 08:55  撰四记  阅读(425)  评论(0编辑  收藏  举报