import java.io.*;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.StringTokenizer;
public class Main {
static int T;
static int a;
static int b;
static StringBuilder sb;
public static int calculate() {
int ans = 1;
for(int i = 0; i < b; i++) {
ans = (ans*a) % 10;
}
if(ans == 0) {
return 10;
}
return ans;
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
sb = new StringBuilder();
int T = Integer.parseInt(br.readLine());
StringTokenizer st;
for (int i = 0; i < T; i++) {
st = new StringTokenizer(br.readLine());
a = Integer.parseInt(st.nextToken());
b = Integer.parseInt(st.nextToken());
sb.append(calculate()).append('\n');
}
System.out.print(sb.toString());
}
}
상한이 99의 99999승이기 때문에 그대로 나머지 연산처리를 하게 된다면 오류가 일어나게 된다.
그렇기 때문에 (c*a)%10 (a = 1) 한 값에 계속 나머지 연산을 b번만큼 반복해서 구해준다.
'Dev > PS' 카테고리의 다른 글
[백준] 14889 스타트와 링크 java (0) | 2022.02.08 |
---|---|
[백준] 10819 차이를 최대로 java (0) | 2022.02.07 |
[백준] 1186 부분수열의 합 java (0) | 2022.02.02 |
[백준] 15686 치킨 배달 java (1) | 2022.01.26 |
[백준] 1920 수 찾기 java (0) | 2022.01.20 |