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 |