x的平方根-LintCode

来源:互联网 发布:淘宝 商品链接 编辑:程序博客网 时间:2024/04/27 18:14

实现 int sqrt(int x) 函数,计算并返回 x 的平方根。
样例
sqrt(3) = 1
sqrt(4) = 2
sqrt(5) = 2
sqrt(10) = 3

#ifndef C141_H#define C141_H#include<iostream>using namespace std;class Solution {public:    /**    * @param x: An integer    * @return: The sqrt of x    */    int sqrt(int x) {        // write your code here        if (x == 1)            return 1;        else if (x == 0)            return 0;        else if (x < 0)            return -1;        int left = 0, right = x;        int mid;        while (left <right)        {            mid = (left + right) >> 1;            if (x/mid==mid)                return mid;            else if (x/mid < mid)            {                right = mid-1;            }            else            {                left = mid+1;            }        }        return  x/left<left?left-1:left;    }};#endif
原创粉丝点击