不调用库函数,求sin(x)

来源:互联网 发布:手机制作广告录音软件 编辑:程序博客网 时间:2024/05/17 06:14

第一首先是泰勒公式,不过公式哥不记得了,有兴趣的去查查,那个实现不难。


第二递归,利用3个公式

sin(x) = 2 * sin(x/2)*cos(x/2)----------------公式1

cos(x) = sqrt(1 - sin(x)*sin(x))----------------公式2

lim sinx = x, 当x趋向于0的时候-----------------公式3

将求sin(x)的问题,分解成求sin(x/2)的问题,然后利用公式3结束递归。


#include<iostream>#include<math.h>using namespace std;double ssin(double x){       if( x < 0.0000001)//定定义一个无穷小           return x;       double result = ssin(x/2);       return 2*result*sqrt(1-result*result);//利用公式1和公式2}int main(){    double x;    cin>>x;    fflush(stdin);    cout<<ssin(x)<<endl;    getchar();    return 0;}




原创粉丝点击