1. 程式人生 > 其它 >求冪級數展開的部分和(C語言)

求冪級數展開的部分和(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 }