简单的算法题——用递归算法求解

用递归算法求解如下问题,计算到第n项为止:
f(x)=x-x^3/3!+x^5/5!-x^7/7!+...

代码如下:

#include <stdio.h>
//求阶乘
double jc(int n)
{
    double s = 1;
    int i = 1;
    for (;i<=n;i++)
    {
        s *= i;
    }
    return s;
}
//求N次方
double cf(int x,int n)
{
    int i=1;
    double s=1;
    for(;i<=n;i++)
    {
        s *= x;
    }
    return s;
}

//递归求值
double fun(int x,int n)
{
    if(n==1)
        return x;
    else
        return cf(-1,n-1)*cf(x,2*n-1)/jc(2*n-1) + fun(x,n-1);
}


int main()
{
    int x,n;
    scanf("%d %d",&x,&n);
    printf("前n项的和为%g\n",fun(x,n));
    return 0;
}