/*
*Copyright (c) 2014, 烟台大学计算机学院
*All rights reserved.
*文件名称:test.cpp
*作者:陈栋梁
*完成日期:2014年 11 月 7 日
*版本号:v1.0
*
*问题描述:
*输入描述:
*输出描述:
*/
#include <iostream>
using namespace std;
const double pi=3.1415926;
double mysin(double x);
double myabs(double x);
int main( )
{
cout<<"sin(π/2)的值为"<<mysin(pi/2)<<endl;
cout<<"sin(56°)的值为"<<mysin((56.0/180)*pi)<<endl;
return 0;
}
double mysin(double x)
{
double sum=x,h=x,l;
int n=1,f=1,s=1;
do
{
f=f*(n+1)*(n+2);
h*=x*x;
s=-s;
l =h/f*s;
sum+=l;
n+=2;
}
while(myabs(l)>1e-5);
return sum;
}
double myabs(double x)
{
return ((x>=0)?x:-x);
}
运行结果: