码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode. Sqrt(x)

时间:2014-12-07 16:20:21      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:style   blog   ar   color   sp   on   div   log   bs   

Implement int sqrt(int x).

Compute and return the square root of x.

二分法, 在[0, x/2 + 1]区间内折半查找。

注意mid * mid 可能会溢出。

int sqrt(int x) 
    {
        unsigned long long low = 0, high = x / 2 + 1, mid = 0;
        while (low <= high)
        {
            mid = (low + high) / 2;
            if (mid * mid == x)
            {
                break;
            }
            else if (mid * mid < x)
            {
                low = mid + 1;
            }
            else
            {
                high = mid - 1;
            }
        }
            
        return mid * mid > x ? mid - 1 : mid;
    }

 

leetcode. Sqrt(x)

标签:style   blog   ar   color   sp   on   div   log   bs   

原文地址:http://www.cnblogs.com/ym65536/p/4149507.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!