Dev/PS
[백준] 1009 분산 처리 java
풋데브
2022. 1. 27. 18:20
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번만큼 반복해서 구해준다.