[Bronze II] 분산처리 - 1009

문제 링크

성능 요약

메모리: 1112 KB, 시간: 736 ms

분류

수학, 구현

제출 일자

2025년 2월 7일 20:05:32

문제 설명

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

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

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

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

입력

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

출력

각 테스트 케이스에 대해 마지막 데이터가 처리되는 컴퓨터의 번호를 출력한다.


💡 해결 방법

💻 코드

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
 
 
 
int main() {
	int N; scanf("%d", &N);
	int* test; 
	test = (int*)malloc(sizeof(int) * N);
	for (int i = 0; i < N; i++)
	{
		int a, b;
		scanf("%d %d", &a, &b);
		int temp = 1;
		for (int k = 0; k < b; k++)
		{
			temp = (temp * a) % 10;
		}
		int ans = temp % 10;
		test[i] = ans;
	}
 
	for (int i = 0; i < N; i++)
	{
		test[i] == 0 ? test[i] = 10 : test[i];
		printf("%d\n", test[i]);
	}
 
 
	return 0;
}