백준 곱셈[1629]

Yellta·2024년 5월 10일
0

알고리듬리듬

목록 보기
2/20

재귀를 처음 접하다보면 조금 어려운 느낌이 있는데
곱셈 문제를 통해서 최대한 쉽게 풀어쓰려고 노력했다!!
어떻게 이런 코드가 나오게 되었는지 왜 이런 코드가 나오게 되었는지 중학교때 배운 수학적인 방법도 꽤나 사용한 것 같다 ㅋ

#include <queue>
#include <iostream>

using namespace std;
using ll = long long;

ll POW(ll a, ll b, ll m) {
    if(b==1) return a%m;
    ll val = POW(a,b/2,m);
    val = val*val%m;

    if(b%2==0) return val;
    return val*a%m;
}

int main() {
    std::ios::sync_with_stdio(0);
    std::cin.tie(0);

    ll a,b,c; cin >> a >> b>> c;
    cout << POW(a,b,c);

}
profile
Yellta가 BE개발해요! 왜왜왜왜왜왜왜왜왜왜왜왜왜왜왜왜왜왜왜 가 제일 중요하죠

0개의 댓글