본문 바로가기
백준 문제풀이

[백준] 1009번

by Dodledd 2024. 4. 20.

위 문제는 중학교 때 배운 공식을 알고있으면 편하다.

거듭제곱일 경우에 1의 자리가 반복되는 상황이 발생한다

 

예를들어

밑이 2인경우에

2¹, 2², 2³, 2⁴, 2⁵ ...

2 , 4 , 8,  16, 32 ...

뒤 일의 자리 수만 본다면 2,4,8,6 이 반복되는 것을 알 수있다.

이것은 2~9까지 모두 반복되는 경우가 있으며 주기가 정해져있다.

또 예를들면 5는 몇 제곱을 해도 무조건 5가 나오는 1주기 이고, 위에 2같은 경우는 4주기이다.

4는 4¹, 4², 4³, 4⁴, 4⁵ ...

       4, 16, 64,256, 1024.... 로 4, 6, 4, 6 이 반복되는 2주기임을 알 수 있다.

이런 공식을 파악하고 있다면 금방 해결할 수 있다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class b1009 {
    public static void main(String[] args) throws IOException {
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st ;

        int a, b, result=0;
        int testCase = Integer.parseInt(bf.readLine()); //반복횟수

        for(int i =0 ; i<testCase ; i++){
            st = new StringTokenizer(bf.readLine());
            a = Integer.parseInt(st.nextToken());
            b = Integer.parseInt(st.nextToken());
            result = a;
            b = b % 4 +4; // 반복되는 주기를 이용한 공식

            for(int j=2 ; j<=b; j++){
                result = (result*a) % 10;
            }
            if(result ==0){
                result =10;
            }
            System.out.println(result);

        }

    }
}

 

'백준 문제풀이' 카테고리의 다른 글

[백준]2164번  (0) 2024.04.22
[백준]11718  (0) 2024.04.21
[백준] 9012번  (0) 2024.04.18
[백준]10773  (0) 2024.04.15
[백준] 4673번  (0) 2024.04.12