[C++] 백준 1009. 분산처리

멋진감자·6일 전
0

알고리즘

목록 보기
101/105
post-thumbnail

🌽 문제

🥕 입출력

🥔 풀이

브론즈래서 금방 풀겠거니 했는데 그건 아녔다;
제곱을 반복할 때 생기는 끝자리 규칙을 이용해서 풀었다.
이 때 10의 배수는 항상 10번째 컴퓨터로 처리되므로 예외 처리가 필요하다.

🥬 코드

#include <iostream>
#include <vector>
using namespace std;

vector<int> v;

void solution(int a, int b) {
	int idx = 0;
	int tmp;

	while (1) {
		if (v.empty())
			tmp = a % 10;
		else {
			tmp = (v[idx] * a) % 10;
			if (tmp == v[0]) break;
			idx++;
			
		}
		v.push_back(tmp);
	}

	return;
}

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	int t, a, b;
	cin >> t;
	for (int i = 0; i < t; i++) {
		v.clear();
		cin >> a >> b;

		if (a % 10 == 0) v.push_back(10);
		else solution(a, b);

		if (b % v.size() == 0) cout << v[v.size() - 1] << "\n";
		else cout << v[b % v.size() - 1] << "\n";
	}

	return 0;
}

🥜 채점

profile
난멋져

0개의 댓글

관련 채용 정보