已知函数$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>
double factorial(double);
int main(int argc, const char *argv[])
{
double x,sum = 0,div = 1,item = 1;
int i=0;
scanf("%lf",&x);
if(x>=0 && x<=5)
{
do
{
div = factorial(i);
item = pow(x,i)/div;
sum = sum + item;
i++;
}while(fabs(item) > 0.00001);
printf("%.4lf\n",sum);
}
return 0;
}
double factorial(double k)
{
int i;
double sum = 1;
for(i=1;i<=k;i++)
{
sum *= i;
}
return sum;
}
本文链接:https://shengto.top/c/pat_22.html
转载时须注明出处及本声明