C++编程【问题描述】根据泰勒公式,求sinx的值。
4.【问题描述】根据泰勒公式,sinx可用x/1-x3/3!+x5/5!-x7/7!...+(-1)n-1x2n-1/(2n-1)!近似计算,取n=10,求sinx的值。...
4.【问题描述】根据泰勒公式,sinx可用x/1-x3/3!+x5/5!-x7/7!...+(-1)n-1x2n-1/(2n-1)!近似计算,取n=10,求sinx的值。
展开
1个回答
展开全部
#include <iostream>
#define PI 3.1415926
double sin(double x)
{
double s;
if(x>2*PI)
x-=2*PI*(int)(x/PI/2);
if(x*2>PI)
if(x<PI)
s=sin(PI-x);
else if(x*2<PI*3)
s=-sin(PI-x);
else
s=-sin(x);
else
{
double a=x,b=1,t,r=0,xx=x*x,s=1,i=3;
do
{
t=a/b;
r+=t*s;
a=a*xx;
b=b*i;
i+=2;
s=s==1?-1:1;
}while(t>1e-5);
return r;
}
return s;
}
int main()
{
using namespace std;
double x;
cout<<"请输入x值:";cin>>x;
cout<<"sin(x)="<<sin(x);
return 0;
}
#define PI 3.1415926
double sin(double x)
{
double s;
if(x>2*PI)
x-=2*PI*(int)(x/PI/2);
if(x*2>PI)
if(x<PI)
s=sin(PI-x);
else if(x*2<PI*3)
s=-sin(PI-x);
else
s=-sin(x);
else
{
double a=x,b=1,t,r=0,xx=x*x,s=1,i=3;
do
{
t=a/b;
r+=t*s;
a=a*xx;
b=b*i;
i+=2;
s=s==1?-1:1;
}while(t>1e-5);
return r;
}
return s;
}
int main()
{
using namespace std;
double x;
cout<<"请输入x值:";cin>>x;
cout<<"sin(x)="<<sin(x);
return 0;
}
追问
【输入形式】输入x,x为弧度制
【输出形式】保留2位小数
【样例输入】3.14
【样例输出】sin(x)=0.00
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询