首页 > 编程知识 正文

c语言开根号取整,c语言怎么取倒数

时间:2023-05-05 20:01:14 阅读:182218 作者:846

上学的时候,我见过一个人写了这样的算法。 一种将某个数加上根号再取倒数的算法。 我自己也觉得非常巧妙,所以把它堆起来,看看怎么样了。

# include stdio.h # include stdlib.hfloatmysqrt (floatx ) { float xhalf=0.5f * x; intI=*(int* ) x; I=0x5f3759df-(I1; x=*(float* ) I; x=x*(1.5f-xhalf*x*x ); 返回x; (intmain ) void ) {float x=2.5; floatret=mysqrt(x; printf(%f(n ),ret ); 返回0; }其作用是平方并撤销一个数,测试的代码比(float ) (1.0/sqrt(x ) )快4倍

算法的原理其实并不复杂。 用牛顿迭代法,用x-f(x )/f ) ) x )逼近f ) x )=a的根。

简而言之,当求平方根、f(x )=x^2=a,f ) ) x ) x,f ) x )/f ) x ) ) x )求出x/2,并将f ) x )代入x-f(x )/f ) x ) x )时

5之5/2=2.5;

(2.5 2)/2=2.25;

5/2.25=xxx;

(2.25 xxx )/2=xxxx

.

执行结果:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。