//#include<bits/stdc++.h>#include<iostream>#include<cstdio>#include<fstream>#include<algorithm>#include<cmath>#include<deque>#include<vector>#include<queue>#include<string>#include<cstring>#include<map>#include<stack>#include<set>#define accuracy 1e-7//精度10的-7次方#define pi 3.1415926 usingnamespace std;//求解sin and cos //阶乘函数 unsignedlongfac(unsignedlong n){unsignedlong i,m;for(i =0,m =1; i <= n; i++){if(i !=0)
m = m*i;}return m;}doublefcos(double x){double temp =0.0, t =5;//temp为cos值 int i =0;
x =fabs(x);//处理double类型的浮点数 while(x >=2*pi) x = x -2*pi;//范围 0 ~ 2Πwhile( t >= accuracy){//每个泰勒展开式值做精度比较
t =(pow(x,2*i))/fac(2*i);//pow函数x的y次方
temp +=pow(-1,i)*t;
i++;}return temp;}doublefsin(double x){double temp =0.0,t =5;int i =1;
x =fabs(x);while(x >2*pi) x = x -2*pi;//while( t >= accuracy){
t =(pow(x,2*i-1))/fac(2*i-1);
temp +=pow(-1,i-1)*t;
i++;}return temp;}intmain(){double r,temp1,temp2;printf("请输入弧度(180°= Π):\n");scanf("%lf",&r);//对应弧度值
temp1 =fcos(r);
temp2 =fsin(r);printf("本地cos值:%.5lf\n",temp1);printf("系统cos值:%.5lf\n",cos(r));printf("本地sin值:%.5lf\n",temp2);printf("系统sin值:%.5lf\n",sin(r));return0;}