본문으로 바로가기
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


문제링크




문제

재용이는 최신 컴퓨터 10대를 가지고 있다. 어느 날 재용이는 많은 데이터를 처리해야 될 일이 생겨서 각 컴퓨터에 1번부터 10번까지의 번호를 부여하고, 10대의 컴퓨터가 다음과 같은 방법으로 데이터들을 처리하기로 하였다.

1번 데이터는 1번 컴퓨터, 2번 데이터는 2번 컴퓨터, 3번 데이터는 3번 컴퓨터, ... ,

10번 데이터는 10번 컴퓨터, 11번 데이터는 1번 컴퓨터, 12번 데이터는 2번 컴퓨터, ...

총 데이터의 개수는 항상 ab개의 형태로 주어진다. 재용이는 문득 마지막 데이터가 처리될 컴퓨터의 번호가 궁금해졌다. 이를 수행해주는 프로그램을 작성하라.


주의할 점 2가지가 있다.

1. 컴퓨터에서는 표현할 수 있는 숫자의 크기가 제한되어 있기 때문에 다 제곱근을해서 10으로 나눈 나머지를 구하는 것은 안된다. 때문에 곱할때마다 10으로 나눈 나머지 값을 계속 곱해야한다.

2. 10으로 나누어질 경우 0번째 컴퓨터가 나올 수 없기 때문에 결과 값이 0일 경우 10번 컴퓨터라는 것을 저장한다.




import java.util.Scanner;


public class BunSan {
    static int testCase;
    static int result[];
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner scan = new Scanner(System.in);
        testCase = Integer.parseInt(scan.nextLine().trim());
        
        result = new int[testCase];
        
        for(int i = 0; i < testCase; i++) {
            int a = scan.nextInt();
            int b = Integer.parseInt(scan.nextLine().trim());
            int resultData = a;
            
            for(int j = 1; j < b; j++) {
                resultData = resultData * a;
                if(resultData > 10)
                    resultData %= 10;
            }
            if(resultData == 0)
                resultData = 10;
            result[i] = resultData;
        }
        
        for(int i = 0; i < result.length; i++)
            System.out.println(result[i]);
    
    }
}