https://st-lab.tistory.com/237
[백준] 1629번 : 곱셈 - JAVA [자바]
www.acmicpc.net/problem/1629 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net 문제 알고리즘 [접근 방법] 이 문..
st-lab.tistory.com
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.StringTokenizer;
public class Main {
static long dp[];
static int A,B,C;
public static void main(String arg[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
A = Integer.parseInt(st.nextToken());
B = Integer.parseInt(st.nextToken());
C = Integer.parseInt(st.nextToken());
dp = new long[3];
dp[1] = A % C;
dp[2] = dp[1]*A%C; //A * A 로하면 오버플로우 발생
System.out.println(divide(B));
}
static long divide(int b) {
if(b <= 2) {
return dp[b];
}
long mid = divide(b/2);
if(b % 2 == 1) {
return (mid * mid % C) * A % C;
}
else {
return mid*mid%C;
}
}
}
'백준' 카테고리의 다른 글
[백준] 11725 트리의 부모 찾기 [자바] (0) | 2022.05.04 |
---|---|
[백준] 2448 별 찍기 - 11 [자바] (0) | 2022.04.25 |
[백준] 1043 거짓말 [자바] (0) | 2022.04.21 |
[백준] 16236 아기 상어 [자바] (0) | 2022.04.19 |
[백준] 16928 뱀과 사다리 게임 [자바] (0) | 2022.04.16 |