반응형
백준 1629번 문제 - 곱셈
1629번: 곱셈
첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다.
www.acmicpc.net
문제 분석

해결 포인트
- 시간 부족 문제
- 분할 정복 사용
- 지수법칙 : 2 ^ 4 = 2 ^ 2 * 2 ^ 2

- 모듈러 성질 : 2 ^ 4 % c = ((2 ^ 2) % c * (2 ^ 2) % c

참고 : 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.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
int c = Integer.parseInt(st.nextToken());
long sum = pow(a, b, c) % c;
bw.write(sum + "\n");
bw.flush();
bw.close();
}
public static long pow(int a, int b, int c) {
if(b == 1)
return a % c;
long result = pow(a, b/2, c);
if(b % 2 == 0) {
return result * result % c;
}
return ((result * result) % c) * a % c;
}
}
반응형
'CodingTEST' 카테고리의 다른 글
[백준 1991] 트리 순회(JAVA) (0) | 2024.01.16 |
---|---|
[백준 1932] 정수 삼각형(JAVA) (0) | 2024.01.16 |
[백준 1149] RGB거리 (JAVA) (0) | 2024.01.14 |
[백준 16953] A → B (JAVA) (0) | 2024.01.14 |
[프로그래머스] 전화번호 목록 (JAVA) (0) | 2024.01.13 |