The Way

백준 1009번: 분산처리 본문

PS/백준 온라인 저지

백준 1009번: 분산처리

Jeonggyun 2017. 10. 23. 00:19

백준 온라인 저지(BOJ) 1009번 문제

https://www.acmicpc.net/problem/1009



1. 문제 요약

1번~10번의 이름을 가진 컴퓨터로 차례대로 분산 처리를 할 때, 

마지막 데이터가 처리되는 컴퓨터의 번호는?



2. 알고리즘

말은 복잡하지만, $a^b$의 일의 자리 수를 출력하는 문제이다.

시간을 단축시키는 방법은 여기를 참고하자.


0일 경우 10으로 출력해야 한다.



3. 코드

#include <iostream>

int pow(int base, int index, int mod = 10) {
	int r = 1;
	while (index != 0) {
		if (index & 1 != 0) r = (r * base) % mod;
		base = (base * base) % mod;
		index >>= 1;
	}
	return r;
}

int main() {
	int T;
	scanf("%d", &T);
	
	for (int i = 0; i < T; ++i) {
		int a, b;
		scanf("%d %d", &a, &b);
		
		int com = pow(a, b);
		if (com == 0) printf("10\n");
		else printf("%d\n", com);
	}	
	
	return 0;
}


'PS > 백준 온라인 저지' 카테고리의 다른 글

백준 11722번: 가장 긴 감소하는 부분 수열  (0) 2017.11.28
백준 11399번: ATM  (0) 2017.11.28
백준 2444번: 별찍기 - 7  (0) 2017.08.26
백준 2443번: 별찍기 - 6  (0) 2017.08.26
백준 2442번: 별찍기 - 5  (0) 2017.08.26
Comments