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
반응형
'백준 > 5001 - 10000' 카테고리의 다른 글
[백준] 6549번 : 히스토그램에서 가장 큰 직사각형 (0) | 2024.12.15 |
---|---|
[백준] 9881번 : Ski Course Design (0) | 2024.11.16 |
[백준] 9250번 : 문자열 집합 판별 (0) | 2024.10.13 |
[백준] 9252번 : LCS2(JAVA) (0) | 2021.11.04 |
[백준] 9063번 : 대지(JAVA) (0) | 2021.10.27 |
댓글