반응형

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

 

1009번: 분산처리

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

www.acmicpc.net

문제

재용이는 최신 컴퓨터 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

+ Recent posts