Python 中的 Sqrt(x)


假设我们有一个数字 x,并且 x 是非负数。我们必须在不使用任何库函数的情况下求 x 的平方根。因此,我们必须创建我们自己的函数来计算 sqrt(x)。在此函数中,输出的小数位将被截断。

假设 x 的值为 4,则如果 x 为 8,则结果为 2,则结果也将为 2,因为 sqrt(8) 为 2.82842。但我们只取整数部分。

要解决此问题,请按照以下步骤操作:

  • 初始化 l = 1,并设置 h = x + 1,answer = 0
  • 当 h > l 时,执行以下操作:
    • mid = (h + l)/2
    • 如果 mid*mid <= x,则 l := mid + 1,answer = mid
    • 否则,h = mid
  • 返回答案

让我们看看实现,以便更好地理解

示例(Python)

 现场演示

class Solution(object):
   def mySqrt(self, x):
      """
      :type x: int
      :rtype: int
      """
      low = 1
      high = x+1
      ans = 0
      while high>low:
         mid = (high+low)//2
         print(low,mid,high)
         if mid*mid<=x:
            low = mid+1
            ans = mid
         else:
            high = mid
      return ans
ob1 = Solution()
print(ob1.mySqrt(4))
print(ob1.mySqrt(16))
print(ob1.mySqrt(7))
print(ob1.mySqrt(15))

输入

print(ob1.mySqrt(4))
print(ob1.mySqrt(16))
print(ob1.mySqrt(7))
print(ob1.mySqrt(15))

输出

2
4
2
3

更新于:28-4-2020

437 人次观看

开启你的 职业

完成课程并获得认证

开始
广告