1009번 "분산처리" 문제는 각각의 자릿수들이 주어진 수의 n승으로 계산된 결과를 모두 합하고, 그 합을 10으로 나눈 나머지를 구하는 문제입니다.
주어진 문제에서는 큰 수의 계산을 위해 분산처리를 사용하여 문제를 풀어야합니다. 입력으로 들어온 데이터의 수만큼 루프를 돌면서 주어진 수와 제곱수를 통해 계산하고, 이를 이전 결과값에 더해가면서 최종 계산값을 구합니다.
이 때, 제곱수를 계속 곱하다보면 int형 범위를 넘어설 가능성이 있으므로, 계산마다 10으로 나눈 나머지를 저장하여 범위를 유지해주는 것이 중요합니다.
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int t;
cin >> t;
while (t--) {
int a, b;
cin >> a >> b;
int result = 1;
for (int i = 0; i < b; i++) {
result = (result * a) % 10;
}
if (result == 0) result = 10;
cout << result << endl;
}
return 0;
}