题目描述
本题要求实现一个函数,用下列公式求cos(x)的近似值,精确到最后一项的绝对值小于eps。要求定义和调用函数funcos(eps,x)求余弦函数的近似值。
cos(x)=x0/0!−x2/2!+x4/4!−x6/6!+⋯
输入输出均在双精度范围内。
输入
两个实数eps(精度)和x
输出
见样例(分别保留2位与6位小数)
0.01 -3.14
cos(-3.14) = -0.999899
ac代码
double coss(double eps,double x);
double fact(double x);
double coss(double eps,double x){
double an=1,sum=0,n;
for(double i=1;fabs(an)>=eps;i++){
n=2*(i-1);
an=(pow(x,n)/fact(n))*pow(-1,i+1);
sum+=an;
}
return sum;
}
double fact(double x){
double res=1;
for(int i=2;i<=x;i++){
res*=i;
}
return res;
}
int main(){
double eps,x,res;
scanf("%lf %lf",&eps,&x);
res=coss(eps,x);
printf("cos(%.2f) = %.6f",x,res);
return 0;
}