LintCode Python 简单级题目 14.x的平方根

题目描述:

实现 int sqrt(int x) 函数,计算并返回 x 的平方根。

样例

sqrt(3) = 1

sqrt(4) = 2

sqrt(5) = 2

sqrt(10) = 3

挑战 

O(log(x))

题目分析:

class Solution:
    """
    @param x: An integer
    @return: The sqrt of x
    """
    def sqrt(self, x):
        # write your code here
        begin = 0
        end = x
        if x == 0: return 0
        if x == 1: return 1
        
        while True:
            mid = (begin+end)/2
            if mid**2 == x: 
                return mid
            # x处于[begin,end]中间的一个数
            # 如果mid**2 < x,且(mid+1) **2 >x,则mid为最接近于x的平方根
            if mid**2 < x and (mid+1)**2 > x:
                return mid
            elif mid**2 < x:
                begin = mid
                end = end
                continue
            else:
                begin = begin
                end = mid
                continue               

  

posted @ 2017-06-02 17:54  刘冬丶  阅读(1178)  评论(0编辑  收藏  举报