[BOJ] 1009
분산 처리
1009번 https://www.acmicpc.net/problem/1009
분류
-
Bronze 3
- 수학
- 구현
해법
컴퓨터가 10대이므로
a^b 개의 데이터가 있을 때 마지막 데이터를 처리하는 컴퓨터는
a^b 의 일의 자리 숫자와 같습니다. (0은 10으로 처리해야 함에 주의해야 합니다.)
어떤 수를 계속 거듭제곱 하다 보면
그 수가 어떤 수이든간에 일의 자리의 수가 반복됩니다.
따라서, 일의 자리의 수끼리만 계속 곱해주면 됩니다.
정답 코드
#include <iostream>
using namespace std;
int main(void)
{
int T;
cin >> T;
for (int i = 0; i < T; i++)
{
int a, b;
int res = 1;
cin >> a >> b;
for (int j = 0; j < b; j++)
res = (res * a) % 10;
if (res == 0)
cout << 10 << endl;
else
cout << res << endl;
}
return 0;
}
Leave a comment