처음에는 거듭 제곱을 해준 후 % 10만 해주려고 했다. 하지만 실행을 해보니 큰 수의 거듭제곱이 반복되면 int의 한계를 넘어서서 오류가 났다.
그 후의 생각은 마지막 수가 중요하니 뒷자리만 계산한 후 % 10을 해주는 것이다.
여기서 내가 생각하지 못했던 부분은 10이상의 수 중 나머지가 0일 경우 10번째 컴퓨터여야 하는데 예외처리를 하지 않아 0으로 나왔던 점이다.
대충 끼워맞추느라 코드는 지저분하지만 해결.
import java.util.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int T;
int a,b;
int data;
T = in.nextInt();
for (int i=0;i<T;i++)
{
a=in.nextInt();
b=in.nextInt();
data=a;
if (b==0)
System.out.println(1);
else if (b==1) {
if (a>=10 && a%10==0)
System.out.println(10);
else
System.out.println(a%10);
}
else {
for (int j=1;j<b;j++)
data=data*a%10;
if (a>=10 && data==0)
data=10;
System.out.println(data);
}
}
}
}