计算cosx的近似值
题目:
利用泰勒公式计算cosx的近似值,直到最后一项的绝对值小于10的-6次方
输入样例
0.3
输出样例
0.955336
问题:开始总是只有小数点后三位,后面都是0,后来发现取绝对值的abs是处理int的,改成处理double类型的fabs就好了。
int abs(int i); // 处理int类型的取绝对值
double fabs(double i); // 处理double类型的取绝对值
float fabsf(float i); // 处理float类型的取绝对值
完整代码:
#include<stdio.h>
#include<math.h>
int main(){
double x,jiecheng=1.0,ans=1.0,xiang;
int n=2;
scanf("%lf",&x);
while(true){
jiecheng=jiecheng*n*(n-1)*1.0;
xiang=pow(-1,n/2)*(pow(x,n)/jiecheng);
ans=ans+xiang;
if(fabs(xiang)<pow(10,-6)) break;
n=n+2;
}
printf("%lf",ans);
return 0;
}