Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 Sqrt(x)

<시간/>

숫자 x가 있고 x가 음수가 아닌 숫자라고 가정합니다. 라이브러리 함수를 사용하지 않고 x의 제곱근을 찾아야 합니다. 그래서 우리는 sqrt(x)를 평가하기 위해 우리 자신의 함수를 만들어야 합니다. 이 함수에서는 출력의 10진수가 잘립니다.

x의 값이 4라고 가정하고 x가 8이면 결과도 2가 되고 sqrt(8)이 2.82842이므로 결과도 2가 됩니다. 하지만 정수 부분만 사용합니다.

이 문제를 해결하려면 다음 단계를 따르십시오 -

  • l =1 및 h =x + 1, 답변 =0 초기화
  • 동안 h> l, do
    • 중간 =(h + l)/2
    • mid*mid <=x이면 l :=mid + 1, 답 =mid
    • 그렇지 않으면 h =중간
  • 반환 응답

더 나은 이해를 위해 구현을 살펴보겠습니다.

예제(파이썬)

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

입력

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

출력

2
4
2
3