알고리즘
백준 1009번 분산처리
hyun0229
2022. 5. 8. 21:51
https://www.acmicpc.net/problem/1009
1009번: 분산처리
입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 정수 a와 b가 주어진다. (1 ≤ a < 100, 1 ≤ b < 1,000,000)
www.acmicpc.net
위 문제의 풀이입니다.
#include <iostream>
int main()
{
int t, b, a;
std::cin >> t;
for (int i = 0; i < t; i++)
{
std::cin >> a >> b;
if (a%10==0) //a가 10의 배수일 경우 무조건 10번째 컴퓨터
{
std::cout << 10<<"\n";
}
else
{
int z = 1;
for (int x = 0; x < b % 4 + 4; x++) // 결국 끝 자리수는 4단위로 반복됨 0방지를 위해 4더함
{
z *= a%10; //z에 a%10을 곱하는 이유는 오버플로우 방지
}
std::cout << z % 10 << "\n";
}
}
}
위의 추가적인 설명으로는
1= 1, 1, 1, 1, 1
2= 2, 4, 8, 16, 32
3= 3, 9, 27, 81 ,243
.
.
.
8= 8, 64, 512, 4,096, 32,768
9= 9, 81, 729, 6,561, 59,049
4단위로 뒷자리가 반복됨
