猜测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