算法大全:

算法大全:

1、求平方根(二分法)

 double sqrt(double x)

{double s,e;//平方根位于s~e区间内

if(x<0) printf("x不能小于零!");

else if(x<1) s=x,e=1;

else s=0,e=x;

while(s!=e)

{if((s+e)*(s+e)/4-x>0) e=(s+e)/2;

else s=(s+e)/2;}

return s;}

2、求三角函数(矩阵)

//求零到一千度以内且为整数的正弦函数

//旋转x度的矩阵为{{cos,sin},{-sin,cos}}

#define S1=0.0174…

#define C1=0.9998…

#define S10=0.1736…

#define C10=0.9848…

#define S100=0.9848…

#define C100=-0.1736…

 double m1 [2][2]={{C1,S1},{-S1,C1}};//旋转1度的矩阵,下面同理

double m10[2][2]={{C10,S10},{-S10,C10}};

double m100[2][2]={{C100,S100},{-S100,C100}};

void rotate(double x,double y,double m[2][2])

{double x2=x*m[0][0]+y*m[1][0];

double y2=x*m[0][1]+y*m[1][1];

x=x2;y=y2;}

double sine(int x)

{int d100=x/100;//获取100的整倍数,下同

int d10=(x-d100*100)/10;

int d1=(x-d100*100-d10*10);

double y=0,x=1;

for(int i=0;i<d100,i++) rotate(x,y,m100);

for(int i=0;i<d10,i++) rotate(x,y,m10);

for(int i=0;i<d1,i++) rotate(x,y,m1);

return y;}

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值