Python 中的 Sqrt(x)

pythonserver side programmingprogramming更新于 2025/10/31 19:56:17

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

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

要解决这个问题,请按照以下步骤 −

  • 初始化 l = 1,h = x + 1,answer = 0
  • 当 h > l,do
    • mid = (h + l)/2
    • 如果 mid*mid <= x,则 l := mid + 1,answer = mid
    • 否则 h = mid
  • 返回 answer

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

示例 (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

相关文章


有用资源