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