[백준] 1009. 분산처리

최대 1 분 소요

문제 링크

[백준] 1009. 분산처리


풀이 과정

분할정복으로 거듭제곱을 구현해 사용했습니다. 또한, $a^b$의 일의 자리 수가 정답이 되는 문제 특성을 파악해, 두 수를 곱한 결과의 일의 자리수만을 이용했습니다.


코드

import java.util.Scanner;

public class BOJ_1009_분산처리 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int TC = sc.nextInt();

        while (TC-- > 0) {
            int a = sc.nextInt();
            int b = sc.nextInt();
            int num = pow(a, b);

            System.out.println(num == 0 ? 10 : num);
        }
    }

    static int pow(int a, int e) {
        if (e == 1) return a % 10;

        int half = pow(a, e / 2) % 10;

        if (e % 2 == 0) return half * half % 10;
        else return half * half * a % 10;
    }
}

카테고리:

업데이트:

댓글남기기