找工作刷题记录_022x的平方根

实现 int sqrt(int x) 函数。

计算并返回 x 的平方根,其中 是非负整数。

由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。

示例 1:

输入: 4
输出: 2

示例 2:

输入: 8
输出: 2
说明: 8 的平方根是 2.82842..., 
     由于返回类型是整数,小数部分将被舍去。

思路:二分法;牛顿法。

#二分法
class Solution:
    def mySqrt(self, x: int) -> int:

        """
        :type x: int
        :rtype: int
        """
        l = 1
        r = x
        while(l < r):
            #m = (l + r)>>1
            m = (l+r)//2
            if m*m > x:
                r = m
            else:
                l = m+1
        return l-1

#牛顿法
class Solution:
    def mySqrt(self, x: int) -> int:
        r = x
        while r*r > x :
            r = (r + x / r) // 2
        return int(r)

猜你喜欢

转载自blog.csdn.net/qq_23565519/article/details/88777395