c++

백준 c++ 1009 문제 풀이

psb08 2025. 4. 22. 09:04
728x90
반응형

문제 링크 : https://www.acmicpc.net/problem/1009

목차

1. 설명

 

2. 내 코드

 

3. 문제 풀이 해석 내용

 

4. 실행 결과

 

설명

백준 브론즈 2 문제 입니다.

문제명 : 분산처리

 

내 코드

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


int main()
{
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    std::cout.tie(NULL);

    int T;
    cin >> T;

    while (T--)
    {
        int a, b;
        cin >> a >> b;

        a %= 10;
        if (a == 0)
        {
            cout << 10 << '\n';
            continue;
        }

        int result = 1;
        for (int i = 0; i < b % 4 + 4; ++i)
        {
            result = (result * a) % 10;
        }

        cout << result << '\n';
    }


}

 

문제 풀이 해석 내용

 

테스트 케이스 수 입력

int T;
cin >> T;

사용자로부터 테스트 케이스의 수 ( T )를 입력받습니다.

 

 

테스트 케이스 처리 루프

while (T--) 
{
    int a, b;
    cin >> a >> b;

( T )만큼 반복하면서 각 테스트 케이스에 대해 두 정수 ( a )와 ( b )를 입력받습니다.

 

 

마지막 자릿수 계산

a %= 10; 
if (a == 0) 
{
    cout << 10 << '\n';
    continue;
}

( a )의 마지막 자릿수를 구하기 위해 ( a )를 10으로 나눈 나머지를 구합니다.
만약 ( a )가 0이면 ( a^b )의 마지막 자릿수는 10으로 간주하고 출력합니다.

 

 

결과 계산

float

( result ) 변수를 1로 초기화합니다.
( b )를 4로 나눈 나머지에 4를 더한 만큼 반복하여 ( a )의 거듭제곱을 계산합니다. 

이는 ( a^b )의 마지막 자릿수를 구하는 데 필요한 반복 횟수입니다.
매 반복마다 ( result )에 ( a )를 곱하고, 마지막 자릿수만 남기기 위해 10으로 나눈 나머지를 계산합니다.

 

 

결과 출력

cout << result << '\n';

계산된 마지막 자릿수를 출력합니다.

 

 

실행 결과

'c++' 카테고리의 다른 글

백준 c++ 20053 문제 풀이  (0) 2025.04.30
백준 c++ 5524 문제 풀이  (0) 2025.04.29
백준 c++ 5363 문제 풀이  (0) 2025.04.21
백준 c++ 33556 문제 풀이  (0) 2025.04.20
백준 c++ 1681 문제 풀이  (0) 2025.04.19