Notice
Recent Posts
Recent Comments
Link
Dev.baelanche
[백준 1629] 곱셈 본문
반응형
x제곱 하기에 수가 너무 크므로 분할하는 방법으로 접근해야 한다.
B를 2로 계속 나누어 최대한 작은 수로 만들고 매 연산마다
(A*B)%C = ((A%C)*(B%C))%C
를 이용하여 수를 더 작게 만들어준다.
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
long ans = 1;
long mul = a % c;
while(b>0) {
if(b%2 == 1) {
ans *= mul;
ans %= c;
}
mul = ((mul % c) * (mul % c)) % c;
b /= 2;
}
System.out.println(ans);
}
}
반응형
'Data Structure & Algorithm > PS - JAVA' 카테고리의 다른 글
[백준 1992] 쿼드트리 (0) | 2019.05.03 |
---|---|
[백준 1780] 종이의 개수 (0) | 2019.05.03 |
[백준 1713] 후보 추천하기 (0) | 2019.04.27 |
[백준 2823] 유턴 싫어 (2) | 2019.04.27 |
[백준 9324] 진짜 메세지 (0) | 2019.04.27 |
Comments