C语言里面的开方函数是怎么实现的?求代码

 我来答
匿名用户
2013-06-04
展开全部
用二分的方法,在一个区间中,每次拿中间数的平方来试验,如果大了,就再试左区间的中间数;如果小了,就再拿右区间的中间数来试。比如求sqrt(16)的结果,你先试(0+16)/2=8,8*8=64,64比16大,然后就向左移,试(0+8)/2=4,4*4=16刚好,你得到了正确的结果sqrt(16)=4。然后你三下五除二就把程序写出来了: float SqrtByBisection(float n) //用二分法 { if(n<0) //小于0的按照你需要的处理 return n; float mid,last; float low,up; low=0,up=n; mid=(low+up)/2; do { if(mid*mid>n) up=mid; else low=mid; last=mid; mid=(up+low)/2; }while(abs(mid-last) > eps);//精度控制 return mid; }
何度千寻
推荐于2017-10-09 · TA获得超过5899个赞
知道大有可为答主
回答量:1381
采纳率:91%
帮助的人:557万
展开全部

利用牛顿迭代法求算数平方根

double sqrt(double a)
{
    double x,y;
    x=0.0;
    y=a/2;
    while(x!=y)
    {
        x=y;
        y=(x+a/x)/2;
    } 
    return x;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式