Lintcode: Sqrt(X)

C++

 1 class Solution {
 2 public:
 3     /**
 4      * @param x: An integer
 5      * @return: The sqrt of x
 6      */
 7     int sqrt(int x) {
 8         // write your code here
 9         if (x<=1) {
10             return x;
11         }
12         int left = 1;
13         int right = x;
14         while (left <= right) {
15             int mid = left + ((right - left) >> 1);
16             if (mid == x/mid) {
17                 return mid;
18             }
19             else if (mid < x/mid) {
20                 left = mid + 1;
21             } else {
22                 right = mid - 1;
23             }
24         }
25         return right;
26     }
27 };
原文地址:https://www.cnblogs.com/CheeseZH/p/5006863.html