Leetcode Java Sqrt(x)
업데이트:
문제
코드
class Solution {
public int mySqrt(int x) {
long result = x;
while (result * result > x) {
result = (result + x / result) / 2;
}
return (int)result;
}
}
결과
설명
-
주어진 정수 x의 제곱근을 구하는 문제이다.
- 변수 result를 int보다 큰 자료형인 long으로 정의한다.
- 제곱근을 구할 때 $result \times result$의 값이 int형일 경우, 허용 범위를 초과하기 때문에 long으로 정의한다.
- $result \times result$가 주어진 정수 x보다 작을 때 까지 반복하여 제곱근 result를 구한다.
- $result \times result$가 주어진 정수 x보다 작으면, result에 $\frac{result + \frac{x}{result}}{2}$의 값을 넣는다.
- 위의 값을 result에 넣는 이유는 제곱근을 구하기 위해 근사값을 산정하기 위함이다.
- 반복문이 종료되면, 구해진 제곱근인 result를 주어진 문제의 결과로 반환한다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기