https://www.acmicpc.net/problem/1009
입력받은 두 수로 만들어지는 최대값이 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);
}
}
'coding_test > BAEKJOON' 카테고리의 다른 글
백준 1181번 C, C++ 풀이 (0) | 2021.11.25 |
---|---|
백준 10773번 C++풀이 (0) | 2021.11.18 |
백준 10845번 C언어 풀이 (0) | 2021.11.11 |
백준 10989번 C언어 풀이 (0) | 2021.11.05 |
백준 10828번 C언어 풀이 (0) | 2021.11.04 |