求余弦函数的近似值
題目要求
本題要求實(shí)現(xiàn)一個函數(shù),用下列公式求cos(x)的近似值,精確到最后一項(xiàng)的絕對值小于e:
cos(x)=x?0?? /0!?x?2?? /2!+x?4?? /4!?x?6?? /6!+?
函數(shù)接口定義:
double funcos( double e, double x );
其中用戶傳入的參數(shù)為誤差上限e和自變量x;
函數(shù)funcos應(yīng)返回用給定公式計(jì)算出來、并且滿足誤差要求的cos(x)的近似值。
輸入輸出均在雙精度范圍內(nèi)。
實(shí)現(xiàn)代碼
#include <stdio.h> #include <math.h>double funcos( double e, double x ); double funcos( double e, double x ){double m=0,n,k=1;//k是每一項(xiàng)的絕對值,m是所有項(xiàng)的和,n是某一項(xiàng)的階乘 int l=1;//l是判斷正負(fù)號的 m+=k;if(m<e) return m;//第一項(xiàng)絕對值就小于e for(int i=2;;i=i+2){n=1;//求階乘 for(int j=i;j>=1;--j){n=n*j;}k=pow(x,i)/n;if(l%2==1) m-=k;//判斷每一項(xiàng)的符號加到總項(xiàng)里 else m+=k;if(k<e) return m;//如果這一項(xiàng)的絕對值<e,那么返回m l++; } } int main() { double e, x;scanf("%lf %lf", &e, &x);printf("cos(%.2f) = %.6f\n", x, funcos(e, x));return 0; }/* 你的代碼將被嵌在這里 */總結(jié)
- 上一篇: java封装概念_Java面向对象---
- 下一篇: python 查看当前目录_Python