정답 코드
using namespace std;
typedef long long ll;
ll a, b, c;
ll go(ll a, ll b) {
cout << a << ":" << b << '\n';
if (b == 1) return a % c;
ll ret = go(a, b / 2);
ret = (ret * ret) % c;
if (b % 2)
{
ret = (ret * a) % c;
}
return ret;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin >> a >> b >> c;
cout << go(a, b) << "\n";
return 0;
}
'Algorithm > C++' 카테고리의 다른 글
[백준 17478] 재귀함수가 뭔가요? (0) | 2022.09.07 |
---|---|
[백준 1074] Z (0) | 2022.09.07 |
[백준 6593] 상범 빌딩 (tuple 사용법) (0) | 2022.09.06 |
[백준 2468] 안전 영역 (0) | 2022.09.06 |
[백준 5014] 스타트링크 (0) | 2022.09.04 |
댓글