백준/5001 - 10000
[백준] 8416번 : Czy umiesz potęgować?
lms0806
2024. 11. 18. 20:24
728x90
https://www.acmicpc.net/problem/8416
a^b를 했을 때, 맨 끝자리 수를 구하는 문제입니다.
2의 배수로 생각했을 때 2, 4, 8, 6이 반복되고
3의 배수로 생각하면 3, 9, 7, 1이 반복됩니다.
2부터 9까지 모두 생각했을 때, 4개의 수가 반복되므로 b를 4로 나눈 나머지 만큼만 돌면 됩니다.
맨 끝자리만 구하면 되니 a도 10으로 나눈 나머지만 곱하면 됩니다.
단, b가 4의 배수인 경우 4로 지정하면 됩니다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken()) % 10, b = Integer.parseInt(st.nextToken()) % 4;
if(b == 0) {
b = 4;
}
int answer = 1;
while(b --> 0) {
answer *= a;
}
System.out.print(answer % 10);
}
}
728x90