cos(x)的幂级数求值法
通过递归求解各级泰勒公式展开项,求和得到cos值
#define m_
#include<iostream>
#include<cstdio>
#include<string.h>
#include<algorithm>
#include<cmath>
#include<string>
//#include<queue>
//#include<vector>
//#include<map>
//#include<list>
//#include<set>
//#define MAX
using namespace std;
float setAns(float x,int n){
int flag=1;
float a=1;
for(int i=0;i<n;i++)
flag=flag*-1;
for(int i=0;i<2*n;i++) {
a=a*x/(i+1);
// a=a/2;
}
if(abs(a*flag)<0.00001)
return 0;
return a*flag+setAns(x,n+1);
}
int main()
{
#ifdef m_
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
#endif
float a;
cin>>a;
cout<<setAns(a,0);
#ifdef m_
fclose(stdin);
fclose(stdout);
#endif
return 0;
}
样例 :
输入: 2.0
输出: -0.416155