码迷,mamicode.com
首页 > 其他好文 > 详细

浮点数开根号 二分法+牛顿法

时间:2018-09-04 00:17:14      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:二分   while   double   sqrt   ++   ble   二分法   浮点   new   

double sqrt_bin(double n){
    if(n < 1){
        n = 1;
    }
    double left = 0;
    double right = n;
    double mid = n / 2;
    while(abs(mid * mid - n) > 0.000001){
        if(mid*mid < n){
            left = mid;
        }
        else{
            right = mid;
        }
        mid = (left + right) / 2;
    }
    return mid;
}


double sqrt_newton(double n){
    if(n < 1){
        n = 1;
    }
    double x0 = n;
    double x1 = x0;
    while(x1 * x1 - n > 0.0000001){
        x1 = 0.5 * (x0 + n / x0);
        x0 = x1;
    }
    return x0;
}

浮点数开根号 二分法+牛顿法

标签:二分   while   double   sqrt   ++   ble   二分法   浮点   new   

原文地址:https://www.cnblogs.com/theodoric008/p/9581646.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!