Q . 어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다. 정수 n이 매개변수로 주어질 때, n이 제곱수라면 1을 아니라면 2를 return하도록 solution 함수를 완성해주세요.
이클립스에는 제곱근을 Math.sqrt를 이용해서 구할 수 있습니다.
n의 제곱근을 구하려면 Math.sqrt(n);이렇게 사용하면됩니다.
제곱수인지는 어떻게 판별할까요?
제곱수가 아니라면
public class ex {
public static void main(String[] args) {
System.out.println(Math.sqrt(15));
}
}
이렇게 출력했을 때
3.872983346207417
이런값이 나옵니다.
이것을 정수형으로 변환하면 3이됩니다.
따라서 제곱수를 구하려면
제곱수끼리 곱했을 때 원래의 정수가 나오면 됩니다.
public int solution(int n) {
// 제곱근을 구하고 그 값을 정수로 변환
double sqrt = Math.sqrt(n);
// 제곱근을 다시 제곱했을 때 n과 같으면 제곱수
if (sqrt == (int) sqrt) {
return 1; // 제곱수
} else {
return 2; // 제곱수가 아님
}
}
자바의 기능인 Math.sqrt를 활용한 문제였습니다.
'Java > 실습' 카테고리의 다른 글
[Java] 버스 - 메소드 (0) | 2024.12.06 |
---|---|
[Java] N의 배수 고르기 (1) | 2024.12.05 |
[Java] 주사위 게임 (1) | 2024.12.05 |
[Java] 로또 (0) | 2024.12.05 |
[Java] 가위 바위 보 (1) | 2024.12.04 |