알고리즘/백준

[백준/C] 1009번: 분산처리

이우열 2022. 6. 12. 17:36
728x90

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

 

1009번: 분산처리

입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 정수 a와 b가 주어진다. (1 ≤ a < 100, 1 ≤ b < 1,000,000)

www.acmicpc.net


 

 


 

문제 분석

재용이는 가지고 있는 10대의 컴퓨터로 입력 받은 a^b 개의 자료를 분산해서 처리해야 한다.

이때 마지막에 처리되는 자료는 몇 번째 컴퓨터로 처리하는가를 구하는 문제이다. 이는 자료의 개수를 10으로 나누면 쉽게 해결 될 문제처럼 보이지만 (1≤a<100, 1≤b<1,000,000)의 범위를 가질 수 있기에 자칫 자료의 개수가 방대하게 커질 수 있다.

 

코드 진행 방향

이를 방지하고자 a를 b번 곱할 때마다 10으로 나누어주어 수를 줄여 크기를 낮추며 계산한다.

 


 

코드

더보기
#include <stdio.h>
#include <math.h>
int main(){
	int t;
	scanf("%d", &t);
	
	while(t--){
		int a, b;
		scanf("%d %d", &a, &b);
		
		int result=a;
		for(int i=0; i<b-1; i++){
			result=result*a%10;
		}
		
		if(result%10==0)
			printf("10\n");
		else
			printf("%d\n", result%10);
	}
}
728x90

'알고리즘 > 백준' 카테고리의 다른 글

[백준/C] 1037번: 약수  (0) 2022.06.12
[백준/C] 1010번: 다리 놓기  (0) 2022.06.12
[백준/C] 1008번: A/B  (0) 2022.06.12
[백준/C] 1004번: 어린 왕자  (0) 2022.06.11
[백준/C] 1003번: 피보나치 함수  (0) 2022.06.11