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

파이썬에서 가장 가까운 제곱근 추측하기

<시간/>

음수가 아닌 숫자 n이 있다고 가정하고 r * r =n이 되도록 숫자 r을 찾고 가장 가까운 정수로 내림해야 합니다. 내장된 제곱근 함수를 사용하지 않고 이 문제를 해결해야 합니다.

따라서 입력이 1025와 같으면 출력은 32가 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • n <=1이면
    • 반환 n
  • 시작:=1, 끝:=n
  • 시작하는 동안 <끝, 수행
    • mid :=시작 + 끝/2
    • mid * mid <=n이면
      • 시작 :=중간 + 1
    • 그렇지 않으면
      • 끝 :=중간
  • 반환 시작 - 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