인프런 커뮤니티 질문&답변

maple V님의 프로필 이미지
maple V

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

1-N

지수만큼 곱해지지 않는 것 같습니다.

작성

·

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

maple V님의 프로필 이미지
maple V
질문자

#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;
}

다시 확인해보니 제 잘못이었습니다. 

제가 코드를 잘못 입력했어요.

강사님께서 올리신 코드는 지수만큼 곱해집니다.

감사합니다 !

maple V님의 프로필 이미지
maple V

작성한 질문수

질문하기