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