/*
*Copyright(c) 2016, 烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:main.cpp
*作 者:李德坤
*完成日期:2016年3月20日
*版本号:v1.0
*
*问题描述:求sin函数的值
*输入描述:无
*输出描述:输出所求的值
*/
#include <iostream>
#include<cmath>
using namespace std;
const double pi=3.1415926;
int jiecheng(int n);
double jueduizhi(double m);
double mysin(double m);
double myabs(double x);
int main()
{
cout<<"sin(π/2)的值为"<<mysin(pi/2)<<endl;
cout<<"sin(56°)的值为"<<mysin(56)<<endl;
return 0;
}
double mysin(double m)
{
double sum=0.0,temp;
int i=0;
if(m>pi)
m=myabs(m);
do
{
temp=jueduizhi(pow(-1,i)*pow(m,2*i+1)/jiecheng(2*i+1));
sum=sum+pow(-1,i)*pow(m,2*i+1)/jiecheng(2*i+1);
i++;
}
while(temp>=0.00001);
return sum;
}
double myabs(double x)
{
double y;
y=x/180*pi;
return y;
}
int jiecheng(int n)
{
if(n==1)
return 1;
else
return n*jiecheng(n-1);
}
double jueduizhi(double m)
{
if(m<0)
return m*-1;
else
return m;
}