위 문제는 중학교 때 배운 공식을 알고있으면 편하다.
거듭제곱일 경우에 1의 자리가 반복되는 상황이 발생한다
예를들어
밑이 2인경우에
2¹, 2², 2³, 2⁴, 2⁵ ...
2 , 4 , 8, 16, 32 ...
뒤 일의 자리 수만 본다면 2,4,8,6 이 반복되는 것을 알 수있다.
이것은 2~9까지 모두 반복되는 경우가 있으며 주기가 정해져있다.
또 예를들면 5는 몇 제곱을 해도 무조건 5가 나오는 1주기 이고, 위에 2같은 경우는 4주기이다.
4는 4¹, 4², 4³, 4⁴, 4⁵ ...
4, 16, 64,256, 1024.... 로 4, 6, 4, 6 이 반복되는 2주기임을 알 수 있다.
이런 공식을 파악하고 있다면 금방 해결할 수 있다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class b1009 {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st ;
int a, b, result=0;
int testCase = Integer.parseInt(bf.readLine()); //반복횟수
for(int i =0 ; i<testCase ; i++){
st = new StringTokenizer(bf.readLine());
a = Integer.parseInt(st.nextToken());
b = Integer.parseInt(st.nextToken());
result = a;
b = b % 4 +4; // 반복되는 주기를 이용한 공식
for(int j=2 ; j<=b; j++){
result = (result*a) % 10;
}
if(result ==0){
result =10;
}
System.out.println(result);
}
}
}
'백준 문제풀이' 카테고리의 다른 글
[백준]2164번 (0) | 2024.04.22 |
---|---|
[백준]11718 (0) | 2024.04.21 |
[백준] 9012번 (0) | 2024.04.18 |
[백준]10773 (0) | 2024.04.15 |
[백준] 4673번 (0) | 2024.04.12 |