在 Python 中猜测最近的平方根

pythonserver side programmingprogramming更新于 2025/12/26 10:52:17

假设我们有一个非负数 n,我们必须找到一个数字 r,使得 r * r = n,并且我们必须向下舍入到最接近的整数。我们必须在不使用内置平方根函数的情况下解决这个问题。

因此,如果输入是 1025,则输出将是 32。

为了解决这个问题,我们将遵循以下步骤 −

  • 如果 n <= 1,则
    • 返回 n
  • start := 1, end := n
  • while start <结束,执行
    • mid := start + end/2
    • 如果 mid * mid <= n,则
      • start := mid + 1
    • 否则,
      • end := mid
  • 返回 start - 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

相关文章


有用资源