작성
·
336
0
1-N 문제 질문드립니다.
강의하신 코드를 에디터에서 돌려봤는데요.
b가 홀수 인 경우 b만큼 곱해지지 않습니다.
만약
a = 2, b = 3이면 2^2의 나머지 값이 나오고
a = 2, b = 5이면 2^3의 나머지 값이 나오고
a = 2, b = 10이면 2^6의 나머지 값이 나옵니다.
지수만큼 곱해지지 않아도 답이 될 수 있는 이유가 있을까요?
답변 2
1
0
#include <iostream>
using namespace std;
typedef long long ll;
ll a, b, c;
ll go(ll a, ll b) {
if (b == 1) return a;
ll _c = go(a, b / 2);
if (b % 2) _c = (_c * a);
else _c = (_c * _c);
return _c;
}
int main() {
cin >> a >> b >> c;
cout << go(a, b) << "\n";
return 0;
}
다시 확인해보니 제 잘못이었습니다.
제가 코드를 잘못 입력했어요.
강사님께서 올리신 코드는 지수만큼 곱해집니다.
감사합니다 !