자바/백준

백준 1009번 / 분산처리

모자 2021. 10. 10. 18:05
728x90
반응형

 

 

import java.util.Scanner;



public class Main {
      
	public static void main(String[] args) {
		Scanner sc= new Scanner(System.in);
		
		int num=sc.nextInt(); //테스트 케이스 개수를 입력 받는다.
		for(int i=0; i<num ; i++) { 
			int result=1;
			int a=sc.nextInt();
			int b=sc.nextInt();
			for(int j=0; j<b; j++) {
				result=(result*a)%10; 
                //a를 b번 곱해준다. 숫자가 몹시 커지면 담을 수 없다. 
                1의자리 숫자만 있으면 컴퓨터의 번호를 출력할 수 있으므로 10으로 나눈 나머지를 result에 담는다.
			}
			if(result==0)
				System.out.println(10);
			else System.out.println(result);
			//1의 자리에 따른 컴퓨터의 번호 출력
		}
	
	}
}

1009번 문제는 1번 데이터는 1번 컴퓨터, 2번 데이터는 2번 컴퓨터 .... 10번 컴퓨터는 10번 컴퓨터, 11번으로 가면 다시 돌아서 1번 컴퓨터의 번호가 출력된다.

즉, 1의 자리 숫자만 있으면 컴퓨터의 번호를 알 수 있다.

하지만 a의 b승이 숫자가 매우 커질 수 있으므로 %10으로 계속 계산해준다. (int와 long에도 담을 수 없다.)