猜测Python中最近的平方根
假设我们有一个非负数n,我们必须找到一个数r,使得r*r=n,并且必须四舍五入到最接近的整数。我们必须解决此问题,而无需使用内置的平方根函数。
因此,如果输入类似于1025,则输出将为32。
为了解决这个问题,我们将遵循以下步骤-
如果n<=1,则
返回n
开始:=1,结束:=n
在开始<结束时,执行
结束:=中
开始:=中+1
中:=开始+结束/2
如果mid*mid<=n,则
除此以外,
返回开始-1
让我们看下面的实现以更好地理解-
示例
class Solution:
def solve(self, n):
if n <= 1:
return n
start, end = 1, n
while start < end:
mid = start + end >> 1
if mid * mid <= n:
start = mid + 1
else:
end = mid
return start - 1
ob = Solution()print(ob.solve(1025))输入值
1025
输出结果
32