根据麦克劳林公式计算任意角的余弦。

输入格式

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;
}