已知函数$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;
}
Last modification:2021 年 03 月 27 日 16 : 04 : 36