본문 바로가기
백준/5001 - 10000

[백준] 8416번 : Czy umiesz potęgować?

by lms0806 2024. 11. 18.
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
반응형

댓글