求幂级数展开的部分和问题(运行超时)

提交显示最大x时运行超时

#include <stdio.h>
#include <math.h>
double num(int k)
{
    int num=1;
    for(int i=k;i>0;i--)
    {
        num=num*i;
    }
    return num;
}
int main()
{
    double n,sum=1.0;
    scanf("%lf",&n);
    if(n<0||n>5)
    {
        return 0;
    }
    double j=1.0;
    for(int i=1;fabs(j)>=0.00001;i++)
    {
      j=pow(n,i)/num(i);
      sum+=j; 

    }
    printf("%.4lf\n",sum);
    return 0;
}