/*
Copyright (c) 烟台大学计算机与控制工程学院
Author:刘慧艳
Created:2014.07.26
Edition:V1.0
Describe:sin cos 泰勒
*/
#include <iostream>
using namespace std;
const double pi=3.1415926;
double mysin(double);
double mycos(double);
double myabc(double);
int main()
{
cout<<"sin(pi/2)的值为:"<<mysin(pi/2)<<endl;
cout<<"sin(56)的值是:"<<mysin((56.0/180)*pi)<<endl;
cout<<"cos(87)的值是:"<<mycos(87.0/180*pi)<<endl;
cout<<"cos(pi/3)的值是:"<<mycos(pi/3)<<endl;
return 0;
}
double mysin(double x)
{
int n=1,fm=1,sign=-1;
double fz=x,sum=x,fs;
do
{
fz=fz*x*x;
fm=fm*(n+1)*(n+2);
fs=fz/fm*sign;
sign=-sign;
sum+=fs;
n+=2;
}
while(myabc(fs)>1e-5);
return sum;
}
double mycos(double x)
{
int n=0,fm=1,sign=-1;
double fz=1,sum=1,fs;
do
{
fz=fz*x*x;
fm=fm*(n+1)*(n+2);
fs=fz/(sign*fm);
sign=-sign;
sum+=fs;
n+=2;
}
while(myabc(fs)>0.00001);
return sum;
}
double myabc(double x)
{
return ((x>=0)?x:-x);
}
那个角度转换成弧度值是一定要写那个点0,要不然结果不对。还有数学一定得学好啊=-=