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

69. Sqrt(x)

时间:2016-05-15 16:49:19      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:

Implement int sqrt(int x).

Compute and return the square root of x.

实现 int sqrt(int x),计算X的平方根。

这道题如果是求double精度的平方根,可以用牛顿法,而这里只需要整数精度,所以使用二分查找法即可,查找范围是0~x,其中间的数mid,比较mid*mid与x的大小,然后更新范围,继续往下迭代,直到范围为空。时间复杂度是O(log x)。给出代码如下:

int mySqrt(int x) {
    if (x < 0)
        return -1;
    int i = 0, j = x;
    while (i<=j)
    {
        int64_t mid = i+(j-i)/2;
        if (mid*mid <= x)
            i = mid + 1;
        else j = mid-1;
    }
    return j;
}

 

69. Sqrt(x)

标签:

原文地址:http://www.cnblogs.com/zhiguoxu/p/5495267.html

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