본문 바로가기
백준 문제 풀이/일반 수학 1

(#2903 Java) 중앙 이동 알고리즘

by _비니_ 2024. 2. 27.

 

문제 이해

 

규칙을 찾는 게 어려웠던 문제이다.

한 변의 점의 개수가 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