69. Sqrt(x)

来源:互联网 发布:网络的个性化服务 编辑:程序博客网 时间:2024/06/05 02:33

这里写图片描述
使用二分法搜索最佳值

    int mySqrt(int x) {       long long left=0,right=x/2+1;        while(left<=right){           long long mid=(left+right)/2;            long long squa=mid*mid;            if(squa==x) return mid;            else if(squa<x) left=mid+1;            else right=mid-1;        }        return right;    }

牛顿迭代法求根
用牛顿法求sqrt
这里写图片描述

    int mySqrt(int x) {       double xn=0,xn1=1;        while(abs(xn1-xn)>=1){            xn=xn1;            xn1=(xn+x/xn)/2;        }        return int(xn1);    }
原创粉丝点击