정수가 주어지면, 그 수의 정수 제곱근을 구하는 프로그램을 작성하시오.
첫째 줄에 정수 n이 주어진다. (0 ≤ n < 2^63)
입력 | 출력 |
---|---|
122333444455555 | 11060446 |
이진 탐색
import java.io.IOException;
import java.util.Scanner;
public class four2417 {
public void solution() throws IOException {
Scanner sc = new Scanner(System.in);
long n = sc.nextLong();
long left = 0;
long right = n;
long result = 0;
while (left <= right) {
long middle = (left + right) / 2;
if (Math.pow(middle, 2) >= n) {
right = middle - 1;
result = middle;
} else {
left = middle + 1;
}
}
if (n == 0) result = 1;
System.out.println(result);
}
public static void main(String[] args) throws IOException {
new four2417().solution();
}
}