完全是按照这个公式套出来的,
#include
double TylorSin(const double x,const int n)
{
double sum=0;
double fenzi=1,fenmu=1;
for(int i=2;i<=n;i++)
{
fenzi*=x*x*1.0;
fenmu*=(2*(i-1))*(2*i-1)*1.0;
sum+=(-1)*fenzi/fenmu;
}
return (sum+1.0)*x;
}
int main()
{
printf("sin(30)=%f\n",TylorSin(3.1415926/6,4));//180除以30,值是6,你只要前4项,所以n=4
printf("sin(45)=%f\n",TylorSin(3.1415926/4,4));
printf("sin(60)=%f\n",TylorSin(3.1415926/3,4));
return 0;
}
结果如下: