[C++] 백준 1009번: 분산처리

Been·2024년 1월 16일
0

백준

목록 보기
21/23
#include <iostream>
using namespace std;

int main()
{
    int T;
    int a;
    int b;
    int dataCount; // 데이터의 개수 (a^b)

    // 테스트 케이스를 입력받는다.
    cin >> T;
    
    for (int i = 0; i<T; i++)
    {
        cin >> a >> b;
        dataCount = 1; 
        //데이터 개수는 1부터 시작한다. 만약 b가 1일 경우, 연산없이 그대로 출력하면 된다.
        for (int j=0; j<b; j++)
        {
            dataCount = (dataCount * a) % 10;
            // 필요한 값은 나머지값인 일의 자리이다.
            // 굳이 숫자의 범위를 늘리지 않고 매번 10으로 나눈 나머지를 구하면 된다.
        }
        
        if (dataCount == 0)
        {
            dataCount = 10; 
            // 마지막 값이 0인 경우, 10번째 컴퓨터이므로 값을 고쳐준다ㅏ.
        }
        
        cout << dataCount << endl;
    }

}

제곱 연산을 정확하게 하자 !

결과값의 초기값을 1로 설정하고 for문을 통해 곱셈을 덧입힌다고 생각하자.

나머지연산의 결과가 문제와 엇나가는 일이 없는지 살펴보자 !

위의 코드의 if문이 없었다면, 10^10을 넣었을 때 0이 출력될 수도 있다.
그러나 문제에 0번째 컴퓨터는 없으며 사실상 10번째 컴퓨터와 같으므로 값을 변경해주자.

profile
콧콧코코콧코콧ㅅ

0개의 댓글