输入格式
x ϵ
注:x 为角(单位:弧度),ϵ 为计算精度。
输出格式
y
注:y 为 x 的余弦值。用 %f 格式限定符输出 6 位小数。
要求:所计算的最后一项的绝对值小于 ϵ。
输入样例1
1.047197551196598 0.00000001
输出样例1
0.500000
输入样例2
315.2064629101759 0.000001
输出样例2
0.500000
提示:将 x 转换为区间 (−2π,2π) 内的角,以提升计算的精度,加快计算速度。
请描述一下麦克劳林公式? 它是怎么一步一步算出结果的?
#include <stdio.h>
#include <math.h>
#define PI 3.141592654
int main()
{
//1.047197551196598
// 315.2064629101759
int i=1,b=2;
double x,c,m,s=1;
printf("请输入角度x 精度c\n");
scanf("%lf %lf",&x,&c);
while(fabs(x)>(PI))
{
x=x-PI;
}
m=-x*x;
printf("%.10f\n",m);
while(fabs(m/b)>=c)
{
s+=(m/b);
printf("%0.6f\n",s);
m=-1*m*x*x;
b=b*(2*i+1)*(2*i+2);
i++;
}
printf("%0.6f\n",s);
return 0;
}