728x90
https://www.acmicpc.net/problem/1009
1009번: 분산처리
입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 정수 a와 b가 주어진다. (1 ≤ a < 100, 1 ≤ b < 1,000,000)
www.acmicpc.net
문제 분석
재용이는 가지고 있는 10대의 컴퓨터로 입력 받은 a^b 개의 자료를 분산해서 처리해야 한다.
이때 마지막에 처리되는 자료는 몇 번째 컴퓨터로 처리하는가를 구하는 문제이다. 이는 자료의 개수를 10으로 나누면 쉽게 해결 될 문제처럼 보이지만 (1≤a<100, 1≤b<1,000,000)의 범위를 가질 수 있기에 자칫 자료의 개수가 방대하게 커질 수 있다.
코드 진행 방향
이를 방지하고자 a를 b번 곱할 때마다 10으로 나누어주어 수를 줄여 크기를 낮추며 계산한다.
코드
더보기
#include <stdio.h>
#include <math.h>
int main(){
int t;
scanf("%d", &t);
while(t--){
int a, b;
scanf("%d %d", &a, &b);
int result=a;
for(int i=0; i<b-1; i++){
result=result*a%10;
}
if(result%10==0)
printf("10\n");
else
printf("%d\n", result%10);
}
}
728x90
'알고리즘 > 백준' 카테고리의 다른 글
[백준/C] 1037번: 약수 (0) | 2022.06.12 |
---|---|
[백준/C] 1010번: 다리 놓기 (0) | 2022.06.12 |
[백준/C] 1008번: A/B (0) | 2022.06.12 |
[백준/C] 1004번: 어린 왕자 (0) | 2022.06.11 |
[백준/C] 1003번: 피보나치 함수 (0) | 2022.06.11 |