문제 이해
규칙을 찾는 게 어려웠던 문제이다.
한 변의 점의 개수가 2의 N제곱에서 1을 더한 값이 되고, 총 점의 개수는 한 변의 점의 개수의 거듭 제곱이 된다.
문제 해결
먼저 N을 입력 받는다.
Scanner in = new Scanner(System.in);
int N = in.nextInt();
입력받은 N을 이용하여 2의 거듭제곱에 1을 더한 값을 계산하고, 그 값을 제곱하여 최종 result 변수에 담아 출력하면 된다.
이 때 Math.pow 메서드의 반환 타입이 double이기 때문에 int형으로 형변환을 해주었다.
int result = ((int) Math.pow(Math.pow(2, N) + 1, 2));
System.out.println(result);
참고로 제곱을 구하는 Math.pow() 함수에 대해 다시한 번 정리하자면 아래와 같다.
Math.pow(밑,지수)
최종 코드
import java.util.Scanner;
public class CenterMovement {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int N = in.nextInt();
//2의 N제곱 + 1의 거듭 제곱
// Math.pow 반환 타입이 double이므로 int로 형변환
int result = ((int) Math.pow(Math.pow(2, N) + 1, 2));
System.out.println(result);
}
}
반응형
'백준 문제 풀이 > 일반 수학 1' 카테고리의 다른 글
(#2720 Java) 세탁소 사장 동혁 (0) | 2024.02.27 |
---|---|
(#11005 Java) 진법 변환 2 (1) | 2024.02.26 |
(#2745 Java) 진법 변환 (0) | 2024.02.26 |