본문 바로가기

Algorithm

(C++) - 백준(BOJ) 1009번 : 분산처리

반응형

https://www.acmicpc.net/problem/1009

 

1009번: 분산처리

입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 정수 a와 b가 주어진다. (1 ≤ a < 100, 1 ≤ b < 1,000,000)

www.acmicpc.net

간단한 수학문제였습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <cmath>
#define ll long long 
using namespace std;
//1의 자리만 보면 된다.
//모든 1의 자리는 공통적으로 지수 4를 주기로 하여 순환한다.
//예를 들어 2의 1승은 2, 2의 2승은 4, 2의 3승은 8, 2의 4승은 2 ....2,4,8,2....
//3의 1승은 3, 3의 2승은 9, 3의 3승은 7, 3의 4승은 1... 3,9,7,1,....
int main() {
    ll t,a,b,ans;
    cin >> t;
    while (t--)
    {
        cin >> a >> b;
        ans = a;
        if(b%4==0) b = 4;
        else b %= 4;
        //pow함수는 a의 b제곱을 double형으로 반환
        ans = pow(a, b);
        if(ans%10 == 0cout << 10 << '\n';
        else cout << ans % 10 << '\n';
    }
}
cs