문제
https://www.acmicpc.net/problem/1629
풀이
[분할 정복]
🍏모듈러 연산 적용
(A×B)%C = ((A%C)×(B%C))%C
🍏분할 정보 적용 예시
A=10, B=11, C=12를 생각해 보자
10^11은 10^5 x 10^5 x 10 과 같다
10^5 는 10^2 x 10^2 x 10 과 같다
10^2 는 10^1 x 10^1 과 같다
이 방식을 이용한 것이다
코드
#include <iostream>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
//INPUT
long long A, B, C;
cin >> A >> B >> C;
//CALCULATE
long long result = 1;
A %= C;
while (B > 0) {
if (B % 2 == 1) {
result = (result * A) % C;
}
A = (A * A) % C;
B /= 2;
}
cout<<result<<"\n";
return 0;
}
'개발 > 백준' 카테고리의 다른 글
[백준] 1991번. 트리 순회 (C++) (0) | 2025.02.24 |
---|---|
[백준] 19951번. 태상이의 훈련소 생활 (C++) (0) | 2025.02.20 |
[백준] 17626번. Four Squares (C++) (0) | 2025.01.16 |
[백준] 18870번. 좌표 압축 (C++) (0) | 2025.01.08 |
[백준] 11286번. 절댓값 힙 (C++) (0) | 2025.01.02 |