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
广告