Python中的Sqrt(x)

假设我们有一个数字x,而x是一个非负数。我们必须找到x的平方根而不使用任何库函数。因此,我们必须创建自己的函数来评估sqrt(x)。在此功能中,输出的十进制数字将被截断。

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

为了解决这个问题,请遵循以下步骤-

  • 初始化l = 1,h = x + 1,答案= 0

  • 当h> l时

    • 中=(h + l)/ 2

    • 如果mid * mid <= x,则l:= mid + 1,答案= mid

    • 否则h =中

  • 返回答案

让我们看一下实现以获得更好的理解

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