Search code examples
ctaylor-series

Taylor series of function e^x


Given a number x. You need to calculate sum of Taylor Series of e^x.

e^x = 1 + x + x^2/2! + x^3/3! + ...

Calculate sum until a general number is lower or equal to 10^(-9).

Down below is my solution but it is wrong for x<0 numbers. Do you have any idea how to fix this to work for negative numbers.

    int x,i,n;
    long long fact; //fact needs to be double
    double sum=0,k=1;
    scanf("%d",&x);
            i=0; sum=0; k=1;
                while (fabs(k)>=1.0E-9) {
                    fact=1;
                    for (int j=1;j<=i;++j)
                        fact*=j;
                    k=pow(x,i)/fact;
                    sum+=k;
                    ++i;
                }
    printf("%lf\n",sum);

Solution

  • fact needs to be double, it can not be long long because of divides.