반응형
https://www.acmicpc.net/problem/1009
문제
재용이는 최신 컴퓨터 10대를 가지고 있다. 어느 날 재용이는 많은 데이터를 처리해야 될 일이 생겨서 각 컴퓨터에 1번부터 10번까지의 번호를 부여하고, 10대의 컴퓨터가 다음과 같은 방법으로 데이터들을 처리하기로 하였다.
1번 데이터는 1번 컴퓨터, 2번 데이터는 2번 컴퓨터, 3번 데이터는 3번 컴퓨터, ... ,
10번 데이터는 10번 컴퓨터, 11번 데이터는 1번 컴퓨터, 12번 데이터는 2번 컴퓨터, ...
총 데이터의 개수는 항상 ab개의 형태로 주어진다. 재용이는 문득 마지막 데이터가 처리될 컴퓨터의 번호가 궁금해졌다. 이를 수행해주는 프로그램을 작성하라.
입력
입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 정수 a와 b가 주어진다. (1 ≤ a < 100, 1 ≤ b < 1,000,000)
출력
각 테스트 케이스에 대해 마지막 데이터가 처리되는 컴퓨터의 번호를 출력한다.
풀이
입력받은 a값을 b만큼 제곱한 후 계산을 하면 계산 가능한 범위를 초과하게 된다.
그러므로 a를 b만큼 곱하는 도중 % 10을 해준다
C++은 python의 ** 같은 제곱근을 바로 계산해주는게 없었다(충격)
그리고 // 같은 몫'만' 계산하는것도 없고(충격, 하긴 당연함 저게 주석 표시니깐)
이러한 부분들을 정리해 볼 필요가 있는 것 같다
코드
#include<iostream>
using namespace std;
int main()
{
int N, a, b;
cin >> N;
for (int i = 0; i < N; i++)
{
int ans = 1;
cin >> a >> b;
for (int j = 0; j < b ;j++)
{
ans = (ans * a) % 10;
}
if (ans == 0) cout << "10" << '\n';
else cout << ans%10 << '\n';
}
}
반응형
'study > 백준' 카테고리의 다른 글
[백준] 9325. 얼마? : C++ (0) | 2022.02.15 |
---|---|
[백준] 10178. 할로윈의 사탕 : C++ (0) | 2022.02.13 |
[백준] 1292. 쉽게 푸는 문제 : C++ (0) | 2022.02.11 |
[백준] 2506. 점수계산 : C++ (0) | 2022.02.10 |
[백준] 2501. 약수 구하기 : C++ (0) | 2022.02.09 |