用泰勒展开式求sinx近似值的多项式为:
输入x求sinx的近似值,要求误差不大于0.00001。
输入格式:
直接输入一个实型数据。没有其它任何附加字符。
输出格式:
直接输出保留3位小数的实型结果。
输入样例:
2.5
输出样例:
0.598
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
#include<iostream>
#include<cmath>
using namespace std;
double x,m;
long long jc(int n)
{
long long t=1;
for(int i=1;i<=n;i++)
{
t*=i;
}
return t;
}
double solve(int i)
{
return (double)pow(m,2*i-1)/jc(2*i-1)*1.0;
}
int main()
{
cin>>m;
long long flag=-1;;
for(int i=1;;i++)
{
double r=solve(i);
if(fabs(x-sin(m))<=0.00001)break;
flag*=-1;
x+=r*flag;
}
printf("%.3lf",x);
}