Computer >> Máy Tính >  >> Lập trình >> Python

Đoán căn bậc hai gần nhất bằng Python

Giả sử chúng ta có một số không âm n, chúng ta phải tìm một số r sao cho r * r =n và chúng ta phải làm tròn xuống số nguyên gần nhất. Chúng ta phải giải quyết vấn đề này mà không sử dụng hàm căn bậc hai củabuiltin.

Vì vậy, nếu đầu vào là 1025, thì đầu ra sẽ là 32.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • nếu n <=1, thì
    • return n
  • start:=1, end:=n
  • trong khi bắt đầu
  • giữa:=start + end / 2
  • nếu giữa * giữa <=n, thì
    • start:=mid + 1
  • nếu không,
    • end:=mid
  • quay lại bắt đầu - 1
  • Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

    Ví dụ

    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))

    Đầu vào

    1025

    Đầu ra

    32