알고리즘/자바(Java)
[백준/boj] 1629: 곱셈 (Java) / 분할정복
s5he2
2021. 2. 21. 16:13
반응형
문제
1629번: 곱셈
첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다.
www.acmicpc.net
풀이
import java.io.*;
import java.util.*;
public class Main {
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static StringTokenizer st;
static long A, B, C;
public static void main(String[] args) throws Exception {
st = new StringTokenizer(br.readLine());
A = Long.parseLong(st.nextToken());
B = Long.parseLong(st.nextToken());
C = Long.parseLong(st.nextToken());
System.out.println(multiple(B));
}
private static long multiple(long b) {
if (b == 1)
return A % C;
long value = multiple(b/2) % C;
if (b % 2 == 1) {
return value * value % C * A % C;
} else {
return value * value % C;
}
}
}
반응형