1. 程式人生 > >LeetCode69 x的平方根 2018.10.13

LeetCode69 x的平方根 2018.10.13

題幹:

實現 int sqrt(int x) 函式。

計算並返回 x 的平方根,其中 是非負整數。

由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。

示例 1:

輸入: 4
輸出: 2

示例 2:

輸入: 8
輸出: 2
說明: 8 的平方根是 2.82842..., 
     由於返回型別是整數,小數部分將被捨去。

採用二分法解題

class Solution:
    def mySqrt(self, x):
        """
        :type x: int
        :rtype: int
        """
        left, right, mid, result = 0, x, 1, 1
        while abs(result - x) > 0.000001:
            mid = (left + right) / 2
            result = mid * mid
            if result > x:
                right = mid
            else:
                left = mid
        return int(mid)