본문 바로가기

Java/실습

[Java] 제곱수 판별하기

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