Leetcode 69 Sqrt(x)

Implement int sqrt(int x).

Compute and return the square root of x.

 

求平方根, 用的是二分法. 从 0 - x, 使用二分的思想啊~

为了防止overflow, 把low和up用long。然后return int类型就行了~

 

据说还有一种牛顿迭代法。。太数学了。。估计要是面试也说不明白。。。就不写了。。

 

 1 public int sqrt(int x) {
 2         long low = 0;
 3         long up = (long)x;
 4         while(low <= up){
 5             long mid = (low + up) / 2;
 6             if(mid * mid > x)
 7                 up = mid - 1;
 8             else if(mid * mid < x)
 9                 low = mid + 1;
10             else
11                 return (int)mid;
12         }
13         return (int)up;
14     }

 

posted @ 2015-02-25 07:43  Sherry是小太阳  阅读(111)  评论(0编辑  收藏  举报