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

Sqrt (x) bằng Python

Giả sử chúng ta có một số x, và x là một số không âm. Chúng ta phải tìm căn bậc hai của x mà không cần sử dụng bất kỳ hàm thư viện nào. Vì vậy, chúng ta phải tạo một hàm riêng để đánh giá sqrt (x). Trong hàm này, chữ số thập phân của đầu ra sẽ bị cắt bớt.

Giả sử giá trị của x là 4, thì kết quả sẽ là 2 nếu x là 8, thì kết quả cũng sẽ là 2, vì sqrt (8) là 2,82842. Nhưng chúng tôi sẽ chỉ lấy phần nguyên.

Để giải quyết vấn đề này, hãy làm theo các bước sau -

  • khởi tạo l =1 và h =x + 1, answer =0
  • while h> l, do
    • mid =(h + l) / 2
    • nếu mid * mid <=x, thì l:=mid + 1, answer =mid
    • nếu không thì h =mid
  • trả lời câu trả lời

Hãy cho chúng tôi xem việc triển khai để hiểu rõ hơn

Ví dụ (Python)

class Solution(object):
   def mySqrt(self, x):
      """
      :type x: int
      :rtype: int
      """
      low = 1
      high = x+1
      ans = 0
      while high>low:
         mid = (high+low)//2
         print(low,mid,high)
         if mid*mid<=x:
            low = mid+1
            ans = mid
         else:
            high = mid
      return ans
ob1 = Solution()
print(ob1.mySqrt(4))
print(ob1.mySqrt(16))
print(ob1.mySqrt(7))
print(ob1.mySqrt(15))

Đầu vào

print(ob1.mySqrt(4))
print(ob1.mySqrt(16))
print(ob1.mySqrt(7))
print(ob1.mySqrt(15))

Đầu ra

2
4
2
3