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 };

 

posted @ 2015-11-30 13:03  ZH奶酪  阅读(295)  评论(0编辑  收藏  举报