coding_test/BAEKJOON
백준 1009번 C언어 풀이
CodeJin
2021. 11. 11. 23:30
https://www.acmicpc.net/problem/1009
1009번: 분산처리
입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 정수 a와 b가 주어진다. (1 ≤ a < 100, 1 ≤ b < 1,000,000)
www.acmicpc.net
입력받은 두 수로 만들어지는 최대값이 10^2000000임을 유의하자. int형이던 long long형이던 이 범위까지 나타낼 수 없으므로 모듈러 계산을 통해 접근하면 된다. 모듈러 연산은 다음을 참고하자 (https://codejin.tistory.com/68)
곱셈 역시 n개의 수에 대해 모듈러 연산 법칙이 확장 가능하므로 a를 곱하는 것이 아닌 a를 10으로 나눈 나머지를 계속 곱해주자. 또한 결과값이 0인경우는 10번째 컴퓨터인 셈이므로 이 경우의 출력은 조건연산을 통해 따로 해준다.
#include <stdio.h>
int main () {
int t, a, b, result;
scanf("%d", &t);
while (t--) {
scanf("%d %d", &a, &b);
result = 1;
for (int i = 0; i < b; i++) {
result *= a%10;
result %= 10;
}
printf("%d\n", result ? result : 10);
}
}