题目:
已知函数e^x
可以展开为幂级数1 + x + x^2 /2!+x^3/ 3!+⋯+ x^k / k!+⋯。现给定一个实数x,要求利用此幂级数部分和求e^x的近似值,求和一直继续到最后一项的绝对值小于0.00001。
输入格式:
输入在一行中给出一个实数x∈[0,5]。
输出格式:
在一行中输出满足条件的幂级数部分和,保留小数点后四位。
输入样例:
1.2
输出样例:
3.3201
代码:
#include<stdio.h>
#include<math.h> //用此函数里的fabs函数取绝对值,和pow函数得出x的幂次方
int main(){
double x;
scanf("%lf",&x);
double sum = 1.0;
double c = 1.0; //将c定义为double,因为阶乘的结果会很大
for(double i = 1;fabs(pow(x,i)/c)>0.00001 ; i++){//用math库里的取绝对值函数对每一项取值比较
c = 1.0;
for(int j = i;j>0;j--){
c *= j;
}
sum += pow(x,i)/c;
}
printf("%.4f",sum);
return 0;
}