분산처리

RANK of solved.ac: B3
Tags: #구현, #수학
문제 링크: https://www.acmicpc.net/problem/1009
문제 번호: 1009

<정답 코드>

#include <iostream>
using namespace std;

int main() {
    int T;
    cin >> T;

    for (int tc = 0; tc < T; tc++) {
        int a, b;
        scanf("%d %d", &a, &b);
        int digit_one_num=1;
        while (b--) {
            digit_one_num = (digit_one_num*a) % 10;
        }
        cout << (digit_one_num == 0 ? 10 : digit_one_num) << endl;
    }

    return 0;
}

<문제 해결 전략>

  • 1의 자리만 보면 된다. 2^9 =512 에서 510등까지는 1~10컴퓨터를 51번 채운거다. 그러므로 남는 2가 실제로 512번이 앉는 컴퓨터 자리이다.
  • 10번과 같은 경우 나머지가 0이 되는데 이럴 경우에만 출력을 10으로 해주면 된다.

+ Recent posts