求幂级数展开的部分和(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 }