x的平方

来源:互联网 发布:华为手表无法获取数据 编辑:程序博客网 时间:2024/05/01 15:09

实现 int sqrt(int x) 函数,计算并返回 x 的平方根。

样例

sqrt(3) = 1

sqrt(4) = 2

sqrt(5) = 2

sqrt(10) = 3

挑战

O(log(x))

 采用二分法进行处理,重点是要注意不要越界。为了加快计算速度,可以从一半开始计算。
代码如下:
class Solution {public:    /*     * @param x: An integer     * @return: The sqrt of x     */     //采用二分法寻找    int sqrt(int x) {        int low = 0,hig = x/2+1;        while(low<=hig){            long long mid = low+(hig-low)/2;            if(mid*mid < x)low = mid+1;            if(mid*mid > x)hig = mid-1;            if(mid*mid == x)return mid;        }        return hig;//返回高位值    }};


原创粉丝点击