/*文件名称:SecondWeek_Test_14.cpp
*作 者:田志伟
*完成日期:2016年 3 月 24 日
*版 本 号:v1.0
*
*
*Copyright(c) 2016,烟台大学计算机工程学院
*All rights reserved.
*文件名称:SecondWeek_Test_15.cpp
*作 者:田志伟
*完成日期:2016年 3 月 24 日
*版 本 号:v1.0
*
*问题描述:使用泰勒展示计算sin x的值(x为弧度单位,且计算sin π和sin 56°的值)
*输入描述:无
*程序输出:sin π与sin 56°的值
*/
#include<iostream>
#include<cmath>
using namespace std;
const double pi=3.1415926;
double myabs(double y) //计算绝对值
{
if(y<0)
return -y;
return y;
}
double sum(int t) // 计算(2n+1)!
{
int i,sum=1;
for(i=1;i<=2*t+1;i++)
sum=sum*i;
return sum;
}
double mysin(double x) //计算sin值的函数(泰勒展示)
{
int i;
double itern,sinx=0;
for(i=0;;i++)
{
itern=pow((-1),i)*pow(x,(i*2+1))/sum(i);
if(myabs(itern)<0.000001)
break;
sinx+=itern;
}
return sinx;
}
int main()
{
cout<<"sin(π/2)的值为"<<mysin(pi/2)<<endl;
cout<<"sin(56°)的值为"<<mysin(pi*(56.0/180))<<endl;
return 0;
}
程序运行: